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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)

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

一、利用直方圖的方式進(jìn)行批量的圖片缺陷檢測(cè)(方法簡(jiǎn)單)

python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)

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

2.1灰度轉(zhuǎn)換(將原圖和要檢測(cè)對(duì)比的圖分開灰度化)

灰度化的作用是因?yàn)楹竺娴闹狈綀D比較需要以像素256為基準(zhǔn)進(jìn)行相關(guān)性比較

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

2.2 直方圖計(jì)算(結(jié)果其實(shí)是二維的圖表--用畫圖的方式展示)

python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)

calcHist參數(shù)講解

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

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

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

2.3 相關(guān)性比較

cv2.compareHist(H1, H2, method)

其中:

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

2.4 展示結(jié)果(判斷閾值)

相關(guān)系數(shù)含義參考表

python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)

im = Image.open(str(i) + '.bmp') draw = ImageDraw.Draw(im) fnt = ImageFont.truetype(r’C:WindowsFontssimsun.ttc’, 30) #這里視作》=0.9認(rèn)為相似,即合格 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')#原圖灰度轉(zhuǎn)換gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)for i in range(1, 6): t1=cv2.cvtColor(cv2.imread(str(i)+'.bmp'),cv2.COLOR_RGB2GRAY) #直方圖計(jì)算的函數(shù),反應(yīng)灰度值的分布情況 hist = cv2.calcHist([gray], [0], None, [256], [0.0,255.0]) h1 = cv2.calcHist([t1], [0], None, [256], [0.0,255.0]) #相關(guān)性計(jì)算,采用相關(guān)系數(shù)的方式 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認(rèn)為相似,即合格 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函數(shù)進(jìn)行直方圖比較進(jìn)行對(duì)比圖片:

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

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

總結(jié)

到此這篇關(guān)于python opencv實(shí)現(xiàn)圖片缺陷檢測(cè)(講解直方圖以及相關(guān)系數(shù)對(duì)比法)的文章就介紹到這了,更多相關(guān)python opencv 缺陷檢測(cè)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产粉嫩高中生无套第一次 | 日韩欧美一区二区三区在线观看 | 操哭美女 | 成年午夜一级毛片视频 | 女人张开腿男人捅 | 草草在线免费视频 | 一本色道久久综合亚洲精品加 | 在线观看欧洲成人免费视频 | 中文字幕一区二区在线播放 | 国产欧美日韩精品高清二区综合区 | 国产亚洲三级 | 精品午夜国产在线观看不卡 | 亚洲国产精品a在线 | 午夜伦y4480影院中文字幕 | 亚洲精品国产一区二区图片欧美 | 91九九| 久久一区视频 | 欧美日韩第二页 | 一道精品视频一区二区三区图片 | 美女被靠视频免费网站不需要会员 | 精品国语_高清国语自产 | 空姐毛片 | 狠狠色丁香九九婷婷综合五月 | 久久日本三级韩国三级 | 国产孕妇孕交一级毛片 | 真人毛片免费全部播放完整 | 91精品国产91久久久久久 | 午夜国产精品不卡在线观看 | 日韩视频在线观看一区 | 成人免费观看www在线 | 欧美毛片大全 | 美女张开腿让人桶 | 国产成人影院一区二区 | 波多野结衣在线播放 | 99在线小视频 | 国产男女交性视频播放免费bd | 99久久精品免费看国产一区二区 | 俄罗斯aa毛片极品 | 欧美成人aa | 国产三级在线观看免费 | 日韩国产成人精品视频人 |