您的位置:首页 > 编程语言 > Python开发

Python Image Opencv图像处理各种方法

2018-01-30 15:24 1051 查看
主要从这里学习到:http://www.cdadata.com/17816

图像语义分割结果要二分类或者多分类,会需要做二值化处理。

最开始想法很暴力,直接遍历,一个一个换:

cv_pic = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
for i in range(len(cv_pic)):
for j in range(len(cv_pic[i])):
# print(cv_pic[i][j])
if cv_pic[i][j] > 127.5:
cv_pic[i][j] = 255
elif cv_pic[i][j] < 127.5:
cv_pic[i][j] = 0
cv2.imwrite(cv_path + '/' + imgname, cv_pic)


但是这样做就很慢,毕竟暴力解法不可取~~~所以找找现成的库。

原图类似这样的:



要转换成黑白两色。

先试试用PIL:

I = Image.open(img)
L = I.convert('1')
L.save("242.png")




结果是这样的,不是我们想要的样子。

之后就用Opencv试试:

cv_pic = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
binary, cv_save = cv2.threshold(cv_pic,127,255,cv2.THRESH_BINARY)
print(cv_save)
# cv2.imshow("haha", cv_save)
# cv2.show()
# exit(1)
cv2.imwrite(imgname, cv_save)




这样的结果才是我们想要的。

如果要黑白色对换,只需将cv2.THRESH_BINARY换成cv2.THRESH_BINARY_INV,结果如图:



就这样~

吐嘲下上传图片功能,有时只能保存了再打开才能上传。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: