白色花边怎么去除掉小窍门Python去掉

来源:爱答装修知识 发布时间:2024-10-15

去白边框.py,彩蛋在最后。

from skimage import iodef corp_margin(img): img2=img.sum(axis=2) (row,col)=img2.shape row_top=0 raw_down=0 col_top=0 col_down=0 for r in range(0,row): if img2.sum(axis=1)[r]<1000*col:#>255去除黑边 row_top=r break for r in range(row-1,0,-1): if img2.sum(axis=1)[r]<1000*col:#>255去除黑边 raw_down=r break for c in range(0,col): if img2.sum(axis=0)[c]<1000*row:#>255去除黑边 col_top=c break for c in range(col-1,0,-1): if img2.sum(axis=0)[c]<1000*row:#>255去除黑边 col_down=c break new_img=img[row_top:raw_down+1,col_top:col_down+1,0:3] return new_imgim = io.imread('白边框.png')img_re = corp_margin(im)io.imsave('白边框-bak.png',img_re)

去黑边框.py

from skimage import iodef corp_margin(img): img2=img.sum(axis=2) (row,col)=img2.shape row_top=0 raw_down=0 col_top=0 col_down=0 for r in range(0,row): if img2.sum(axis=1)[r]>255*col:#<1000去除白边 row_top=r break for r in range(row-1,0,-1): if img2.sum(axis=1)[r]>255*col:#<1000去除白边 raw_down=r break for c in range(0,col): if img2.sum(axis=0)[c]>255*row:#<1000去除白边 col_top=c break for c in range(col-1,0,-1): if img2.sum(axis=0)[c]>255*row:#<1000去除白边 col_down=c break new_img=img[row_top:raw_down+1,col_top:col_down+1,0:3] return new_imgim = io.imread('黑边框.png')img_re = corp_margin(im)io.imsave('黑边框-bak.png',img_re)

下面是解释说明:pip install scikit-image

我用的ide是Thonny一个简单易用的python 编译器。

如果你只是要用,可以不看下面的。下面的是原理讲解,彩蛋在最后。

在网上下载的图片往往存在外面为一圈黑色或者白色的边框。现在我们来学习采用python自动裁剪掉四周不需要的边框。

以下面这两张图为例子,一张有纯黑色边框,一张有纯白色边框。

白边框(蓝色为word边框,实际图片不存在)

黑边框

先来去掉黑色边框。我们知道黑色的RGB值是[0,0,0],但是在skimage中黑色为[0,0,0,255],白色为[255 255 255 255]。

因此大体思路就是先获取整张图片的像素,比如黑边框.png的信息可以用右键查看属性如下:

黑边框

白边框

也就是说这张图有298行+324列像素(白色边框为:281行+275列像素)。然后逐行和逐列去判断,所有像素点RGB值之和。

理论上只需要大于0+0+0+255就可以认为是内容部分了。但是这里为了防止有些比较接近于黑色的纯色边框,我们把阈值设为255或者255+50。这个值可以自己根据需要调节。

Rgb可以通过word里面的字体这个查看:

这个阈值可以通过以下代码来查看:

通过print来计算阈值:255*298(像素)=75990,所以阈值选择255。

说明:Print(img) [0 0 0 255];全白应该是[255 255 255 255];全黑应该是[0 0 0 255]

黑边框

去除黑边框后

那么相应的去除白色边框也很容易了,白色的RGB值是[255,255,255,

255],因此只需要像素点RGB之和小于255*4=1020,按照1000就可以了。

白边框

去除白边框

如果是其它颜色,那你查看下他的rgb,然后定个范围就可以了。

其他颜色的纯色边框,可以自己去尝试调节RGB的阈值来实现。

最后结论:

全白为[255,255,255,255],255+255+255+255=1020按照1020或者1000作为阈值。

全黑为[0,0,0,255],0+0+0+255=255按照255或者 50+255=305作为阈值。

彩蛋留给看到最后的你,批量修改,只需修改路径即可。

# encoding: utf-8from skimage import iodef corp_margin(img): img2=img.sum(axis=2) (row,col)=img2.shape row_top=0 raw_down=0 col_top=0 col_down=0 for r in range(0,row): if img2.sum(axis=1)[r]>255*col:#<1000去除白边 row_top=r break for r in range(row-1,0,-1): if img2.sum(axis=1)[r]>255*col:#<1000去除白边 raw_down=r break for c in range(0,col): if img2.sum(axis=0)[c]>255*row:#<1000去除白边 col_top=c break for c in range(col-1,0,-1): if img2.sum(axis=0)[c]>255*row:#<1000去除白边 col_down=c break new_img=img[row_top:raw_down+1,col_top:col_down+1,0:3] return new_imgimport ospath = "C:\Users\Administrator\Desktop\办公常用py(1)\新建文件夹\" #可以改为你自己的路径,注意斜杠方向# 批量添加图片,后面的参数设置图片尺寸,可以选填files=os.listdir(path)数量=len(files)print(files,数量)print(files[1])for i in range(数量): im = io.imread(path +files[i]) img_re = corp_margin(im) io.imsave(path +"bak"+files[i],img_re)

现代食品期刊

现代农业研究杂志

体育风尚官网

网站建设时需要注意的4个细节

相关推荐
夫妻新房装修套间设计新婚夫妻的新家那叫一

结婚组建自己的小家庭,再买一套属于自己俩的小房子,两人三餐四季,享受甜蜜生活。本期分享一套80㎡婚房装修,屋主是两位刚结婚的...[详细]

家居资讯2025.06.23
2019新房装修开工仪式见识新房子装修开

新房子装修,装修公司也要举行“开工大吉”仪式,我与亲人、友人今天见识了,颇有仪式感!今天上午10:08,“开工大吉”仪式正式开始...[详细]

家居资讯2025.06.23
成都51万新房装修公司威沃敦拟投资51万

挖贝网4月1日,威沃敦(872774)近日发布公告,因公司战略及业务发展需要,公司拟与吴沁霖共同出资设立成都亿凌数科科技有限公司(具...[详细]

家居资讯2025.06.23
崇仁装修新房比较便宜的地方超强买房攻略想

综合评分万科华生公园大道18000元/平方米。共2432户。容积率3.44。预计2023年底前交付6号楼。中国·武汉·园博大道。价格万科华生公园大道...[详细]

家居资讯2025.06.23
非常不满意新房装修我突然不满意自己装修的

后悔这样装自己装修那么多年,为了好看舍弃了实用性的,一时为好看温馨埋了一个大坑给自己。自己装修自己设计只为了好看,现在想...[详细]

家居资讯2025.06.23
吉首老房重新装修价格多少政府采购丨湘西土

项目概况:湘西土家族苗族自治州人民医院房屋装修、修缮项目供应商框架协议采购项目潜在供应商应在《湖南湘西州政府采购 网》(http...[详细]

家居资讯2025.06.23