养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

用python切割图片

时间:2024-11-14 05:38:09

给出下面的图片,我们的目标是,确定出图中前景图片的上下左右边界,以便于切割出这个图片,去掉多余的边框。

用python切割图片

用python切割图片

工具/原料

电脑

python3

方法/步骤

1、观察图片的第一行,全部都是白色:fromskimageimportioa=io.imread('0.jpg')print(a[0])

用python切割图片

2、分离图片的第一个通道:b=a[:,:,0]print(b)

用python切割图片

3、保存b为图片:io.imsave('00.png',b)

用python切割图片

4、这样,b的第一行的每一个像素的值都接近255:print(set(b[0]))

用python切割图片

5、但是第100行就不是了。

用python切割图片

6、这样,可以判断出b里声矜檠鹣面,第51行开始出现黑色像素,到第312行之后又没有黑色像素了。u=[]foriinrange((b.sha禊诬娱飑pe)[0]):ifset(b[i])!=set(b[0]):u.append(i)print(max(u),min(u))

用python切割图片

7、同样的,列方向也可以判断:箪滹埘麽v=[]foriinrange((b.shape)[1]):ifset(b[:,i])!=set(b[:荑樊综鲶,0]):v.append(i)print(max(v),min(v))

用python切割图片

8、这样,大体上可以实现宀窜褓沙截图了:c=a[min(u):max(u),min(v):max(v)]io.imsave('00.png',c)洹彭岣啬而出图之所以看起来有白边,那是因为,没有二值化的缘故。

用python切割图片

9、经过二值化处理之后,效果就如下图。

用python切割图片

© 一点知识