国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python opencv實現圖片缺陷檢測(講解直方圖以及相關系數對比法)

瀏覽:11日期:2022-07-30 18:47:42

一、利用直方圖的方式進行批量的圖片缺陷檢測(方法簡單)

python opencv實現圖片缺陷檢測(講解直方圖以及相關系數對比法)

二、步驟(完整代碼見最后)

2.1灰度轉換(將原圖和要檢測對比的圖分開灰度化)

灰度化的作用是因為后面的直方圖比較需要以像素256為基準進行相關性比較

img = cv2.imread('0.bmp')#原圖灰度轉換gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)#循環要檢測的圖,均灰度化for i in range(1, 6): t1=cv2.cvtColor(cv2.imread(str(i)+'.bmp'),cv2.COLOR_RGB2GRAY)

2.2 直方圖計算(結果其實是二維的圖表--用畫圖的方式展示)

python opencv實現圖片缺陷檢測(講解直方圖以及相關系數對比法)

calcHist參數講解

第一個參數: 必須為列表[],哪怕只有一個圖片 ,image輸入圖像 channels::傳入圖像的通道, 如果是灰度圖像,那就不用說了,只有一個通道,值為0 ,如果是彩色圖像(有3個通道),那么值為0,1,2,中選擇一個,對應著BGR各個通道。這個值也得用[]傳入。 mask:掩膜圖像。 如果統計整幅圖,那么為none 。主要是如果要統計部分圖的直方圖,就得構造相應的炎掩膜來計算。 histSize:灰度級的個數, 需要中括號,比如[256] ranges:像素值的范圍, 通常[0,256] ,有的圖像如果不是0-256,比如說你來回各種變換導致像素值負值、很大,則需要調整后才可以。

#直方圖計算的函數,反應灰度值的分布情況 hist = cv2.calcHist([gray], [0], None, [256], [0.0,255.0])

h1 = cv2.calcHist([t1], [0], None, [256], [0.0,255.0])

2.3 相關性比較

cv2.compareHist(H1, H2, method)

其中:

H1,H2 分別為要比較圖像的直方圖 method - 比較方式 比較方式(method) 相關性比較 (method=cv.HISTCMP_CORREL) 值越大,相關度越高,最大值為1,最小值為0-----------------------只用一種固然不是很嚴謹,但這里做示范,把閾值調高也差不多( 取大于等于0.9 ) 卡方比較(method=cv.HISTCMP_CHISQR 值越小,相關度越高,最大值無上界,最小值0 巴氏距離比較(method=cv.HISTCMP_BHATTACHARYYA) 值越小,相關度越高,最大值為1,最小值為0 #相關性計算,采用相關系數的方式 result = cv2.compareHist(hist,h1,method=cv2.HISTCMP_CORREL)

2.4 展示結果(判斷閾值)

相關系數含義參考表

python opencv實現圖片缺陷檢測(講解直方圖以及相關系數對比法)

im = Image.open(str(i) + '.bmp') draw = ImageDraw.Draw(im) fnt = ImageFont.truetype(r’C:WindowsFontssimsun.ttc’, 30) #這里視作》=0.9認為相似,即合格 if result >=0.9: draw.text((5, 10), u’合格’, fill=’red’, font=fnt) else: draw.text((5, 10), u’不合格’, fill=’red’, font=fnt) im.show('result' +str(i) + '.png')

三、完整代碼

# -*- coding: UTF-8 -*-import cv2from PIL import Image, ImageDraw, ImageFontimg = cv2.imread('0.bmp')#原圖灰度轉換gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)for i in range(1, 6): t1=cv2.cvtColor(cv2.imread(str(i)+'.bmp'),cv2.COLOR_RGB2GRAY) #直方圖計算的函數,反應灰度值的分布情況 hist = cv2.calcHist([gray], [0], None, [256], [0.0,255.0]) h1 = cv2.calcHist([t1], [0], None, [256], [0.0,255.0]) #相關性計算,采用相關系數的方式 result = cv2.compareHist(hist,h1,method=cv2.HISTCMP_CORREL) im = Image.open(str(i) + '.bmp') draw = ImageDraw.Draw(im) fnt = ImageFont.truetype(r’C:WindowsFontssimsun.ttc’, 30) #這里視作》=0.9認為相似,即合格 if result >=0.9: draw.text((5, 10), u’合格’, fill=’red’, font=fnt) else: draw.text((5, 10), u’不合格’, fill=’red’, font=fnt) im.show('result' +str(i) + '.png')

參考博文:

Python-Opencv中用compareHist函數進行直方圖比較進行對比圖片:

https://www.jb51.net/article/184210.htm

OpenCV-Python 直方圖-1:查找、繪制和分析|二十六: http://baijiahao.baidu.com/s?id=1655424859576397139&wfr=spider&for=pc希望幫助能大家理解直方圖以及比較函數作用!!!

總結

到此這篇關于python opencv實現圖片缺陷檢測(講解直方圖以及相關系數對比法)的文章就介紹到這了,更多相關python opencv 缺陷檢測內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 美女一级毛片免费不卡视频 | 久久精品中文字幕免费 | 免费一级毛片私人影院a行 免费一级毛片无毒不卡 | 亚洲美女高清aⅴ视频免费 亚洲美女黄色片 | 欧美一级视频精品观看 | 一本色道久久88亚洲精品综合 | 99视频一区| 欧美videos极品 | 欧美综合在线视频 | 波多野结衣免费视频观看 | 日韩一级片网址 | 亚洲国语在线视频手机在线 | 黄篇网址 | 欧美国产精品 | 亚洲毛片免费观看 | 亚洲图片一区二区 | 国产欧美在线一区二区三区 | 亚洲男人天堂av | 国产精品久久自在自线观看 | aa级毛片毛片免费观看久 | 国产黄色片在线免费观看 | 欧美日韩a∨毛片一区 | 欧美一级欧美一级高清 | 亚洲a级| 国产天堂亚洲精品 | 一区二区三区在线免费观看视频 | 99热官网 | 中国国产一级毛片视频 | 国产精品免费观在线 | 亚洲www色 | 国产亚洲精品久久久久久久 | 免费国产黄 | 真人毛片视频 | 在线观看亚洲免费 | 97久久精品视频 | 亚洲欧美日本视频 | 一级特黄aaa大片在线观看 | 高清大学生毛片一级 | 成在线人永久免费播放视频 | 国产自在自线午夜精品视频 | 亚洲福利视频一区二区三区 |