多语言展示
当前在线:802今日阅读:175今日分享:29

用python切割图片

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

电脑

2

python3

方法/步骤
1

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

2

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

3

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

4

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

5

但是第100行就不是了。

6

这样,可以判断出b里面,第51行开始出现黑色像素,到第312行之后又没有黑色像素了。u=[]for i in range((b.shape)[0]):    if set(b[i])!=set(b[0]):        u.append(i)print(max(u),min(u))

7

同样的,列方向也可以判断:v=[]for i in range((b.shape)[1]):    if set(b[:,i])!=set(b[:,0]):        v.append(i)print(max(v),min(v))

8

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

9

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

注意事项

大爱吗下载地址pan.baidu.com/s/1zmQlyB3PlfjnDKjro4fGlA,密码: ycn4。示例图片,自己画一个就行了。

推荐信息