多语言展示
当前在线:310今日阅读:176今日分享:34

opencv3+python3进行阈值处理

在进行opencv处理图像时, 阈值处理是非常常见的 .  opencv3+python3进行阈值处理.运行环境为 pycharm+win7环境.
工具/原料
1

pycharm+win7环境

2

opencv3+python3

方法/步骤
1

在图形图像处理中, 经常要进行目标物体的选取,或进行变换或计算, 或取消噪音,通过设定阈值进行转换是常用的方法.根据官网opencv库提供了THRESH_BINARY, THRESH_BINARY_INV ,THRESH_TRUNC, THRESH_TOZERO, THRESH_TOZERO_INV几种方法可以直接使用.下2图取自opencv官网.cv.threshold() 参数: 源, 阈值, 高于或低于阈值设置值,  阈值类型

2

代码:import cv2   as  cvimport numpy as npfrom matplotlib import pyplot as pltimg = cv.imread('c:\\meiping.jpg')gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)ret,thresh1 = cv.threshold(gray,127,255,cv.THRESH_BINARY)ret,thresh2 = cv.threshold(gray,127,255,cv.THRESH_BINARY_INV)ret,thresh3 = cv.threshold(gray,127,255,cv.THRESH_TRUNC)ret,thresh4 = cv.threshold(gray,127,255,cv.THRESH_TOZERO)ret,thresh5 = cv.threshold(gray,127,255,cv.THRESH_TOZERO_INV)titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']images = [gray,thresh1,thresh2,thresh3,thresh4,thresh5]#Original Image   灰度图plt.subplot(1,2,1),plt.imshow(images[0], 'gray')plt.subplot(1, 2, 2),plt.hist(images[0].ravel(), 256, [0, 256])plt.title(titles[0])plt.xticks([]),plt.yticks([])plt.show()

3

#BINARYplt.subplot(1,2,1),plt.imshow(images[1], 'gray')plt.subplot(1, 2, 2),plt.hist(images[1].ravel(), 256, [0, 256])plt.title(titles[1])plt.xticks([]),plt.yticks([])plt.show()

4

#BINARY_INVplt.subplot(1,2,1),plt.imshow(images[2], 'gray')plt.subplot(1, 2, 2),plt.hist(images[2].ravel(), 256, [0, 256])plt.title(titles[2])plt.xticks([]),plt.yticks([])plt.show()

5

#TRUNCplt.subplot(1,2,1),plt.imshow(images[3], 'gray')plt.subplot(1, 2, 2),plt.hist(images[3].ravel(), 256, [0, 256])plt.title(titles[3])plt.xticks([]),plt.yticks([])plt.show()

6

#TOZEROplt.subplot(1,2,1),plt.imshow(images[4], 'gray')plt.subplot(1, 2, 2),plt.hist(images[4].ravel(), 256, [0, 256])plt.title(titles[4])plt.xticks([]),plt.yticks([])plt.show()

7

#TOZERO_INVplt.subplot(1,2,1),plt.imshow(images[5], 'gray')plt.subplot(1, 2, 2),plt.hist(images[5].ravel(), 256, [0, 256])plt.title(titles[5])plt.xticks([]),plt.yticks([])plt.show()

8

在实际应用中可以根据'实际情况设置阈值,获得需要的效果.

注意事项
1

pycharm+win7环境 opencv3+python3

2

cv.threshold() 参数: 源, 阈值, 高于或低于阈值设置值, 阈值类型

推荐信息