pythonopencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)-創(chuàng)新互聯(lián)

這篇文章主要講解了“python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)”吧!

讓客戶(hù)滿意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、德州網(wǎng)站維護(hù)、網(wǎng)站推廣。python是什么意思

Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言,其最初的設(shè)計(jì)是用于編寫(xiě)自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開(kāi)發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。

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

python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)

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

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

灰度化的作用是因?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í)是二維的圖表--用畫(huà)圖的方式展示)

python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)

calcHist參數(shù)講解

  • 第一個(gè)參數(shù): 必須為列表[],哪怕只有一個(gè)圖片 ,image輸入圖像

  • channels::傳入圖像的通道, 如果是灰度圖像,那就不用說(shuō)了,只有一個(gè)通道,值為0 ,如果是彩色圖像(有3個(gè)通道),那么值為0,1,2,中選擇一個(gè),對(duì)應(yīng)著B(niǎo)GR各個(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])

    h2 = 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-----------------------只用一種固然不是很?chē)?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,h2,method=cv2.HISTCMP_CORREL)

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

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

python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)

 im = Image.open(str(i) + ".bmp")

 draw = ImageDraw.Draw(im)
 fnt = ImageFont.truetype(r'C:\Windows\Fonts\simsun.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 cv2
from PIL import Image, ImageDraw, ImageFont

img = 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])

 h2 = cv2.calcHist([t1], [0], None, [256], [0.0,255.0])
 #相關(guān)性計(jì)算,采用相關(guān)系數(shù)的方式
 result = cv2.compareHist(hist,h2,method=cv2.HISTCMP_CORREL)
 im = Image.open(str(i) + ".bmp")

 draw = ImageDraw.Draw(im)
 fnt = ImageFont.truetype(r'C:\Windows\Fonts\simsun.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")

總結(jié)

感謝各位的閱讀,以上就是“python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python opencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:pythonopencv如何實(shí)現(xiàn)圖片缺陷檢測(cè)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://muchs.cn/article18/csggdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)微信小程序、網(wǎng)站營(yíng)銷(xiāo)云服務(wù)器、品牌網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)