1、图像二值化图像二值化是指将图像上像素的灰度值设置为0或255的过程,即整幅图像呈现清晰的黑白效果。二、Python图像二值化处理1.opencv简单阈值cv2.threshold2.opencv自适应阈值cv2.adaptiveThreshold计算自适应阈值有两种方法:mean_c和guassian_c3.Otsu的二值化3.例子:importcv2importnumpyasnpfrommatplotlibimportpyplotaspltimg=cv2.imread('scratch.png',0)#globalthresholdingret1,th1=cv2.threshold(img,127,255,cv2.THRESH_BINARY)#Otsu的thresholdingth2=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,2)#Otsu'sthresholding#阈值必须设置为0!ret3,th3=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)#plotall图像及其直方图images=[img,0,th1,img,0,th2,img,0,th3]titles=['OriginalNoisyImage','Histogram','GlobalThresholding(v=127)','OriginalNoisyImage','Histogram',"AdaptiveThresholding",'OriginalNoisyImage','Histogram',"Otsu'sThresholding"]#这里我们使用方法pyplot中绘制直方图的,plt.hist,需要注意的是它的参数是一维数组#所以这里使用了(numpy)ravel方法,将多维数组转化为一维,也可以使用flatten方法order.foriinrange(3):plt.子图(3,3,i*3+1),plt.imshow(images[i*3],'gray')plt.标题(标题[i*3]),plt。xticks([]),plt.yticks([])plt.subplot(3,3,i*3+2),plt.hist(images[i*3].ravel(),256)plt.title(标题[i*3+1]),plt.xticks([]),plt.yticks([])plt.subplot(3,3,i*3+3),plt.imshow(图像[i*3+2],'gray')plt.title(titles[i*3+2]),plt.xticks([]),plt.yticks([])plt.show()以上就是本次分享的全部内容,现在想学编程的小伙伴们就带大家去Python技术大本营,欢迎来到~
