国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè))

這篇具有很好參考價(jià)值的文章主要介紹了opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

缺陷檢測(cè),分為兩個(gè)部分,一個(gè)部分是提取指定的輪廓,第二個(gè)部分通過(guò)對(duì)比實(shí)現(xiàn)劃痕檢測(cè)與缺角檢測(cè)。本次主要搞定第一部分,學(xué)會(huì)觀察圖像與提取圖像ROI對(duì)象輪廓外接矩形與輪廓。

下面是基于二值圖像分析的大致流程

  1. 讀取圖像
  2. 將圖像轉(zhuǎn)換為灰度圖,并對(duì)其進(jìn)行二值化處理。
# 圖像二值化
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | 
  1. 進(jìn)行形態(tài)學(xué)開(kāi)運(yùn)算以去除噪聲和平滑圖像。
cv.THRESH_OTSU)
# 形態(tài)學(xué)開(kāi)運(yùn)算去除噪聲和平滑圖像
se = cv.getStructuringElement(cv.MORPH_RECT, (3, 3), (-1, -1))
binary = cv.morphologyEx(binary, cv.MORPH_OPEN, se)
cv.imshow("binary", binary)

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

  1. 提取圖像中的輪廓。
# 提取圖像中的輪廓
contours, hierarchy = cv.findContours(binary, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)

  1. 針對(duì)每個(gè)輪廓,計(jì)算其外接矩形,并根據(jù)一些條件繪制矩形和輪廓。
height, width = src.shape[:2]
for c in range(len(contours)):
    x, y, w, h = cv.boundingRect(contours[c])
    area = cv.contourArea(contours[c])
    # 根據(jù)條件過(guò)濾不符合要求的輪廓
    if h > (height//2):
        continue
    if area < 150:
        continue
    cv.rectangle(src, (x, y), (x+w, y+h), (0, 0, 255), 1, 8, 0)
    cv.drawContours(src, contours, c, (0, 255, 0), 2, 8)

整理示例:檢測(cè)圖片中的缺陷并將缺陷框選出來(lái)

原圖:

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

代碼如下:

import cv2 as cv


src = cv.imread("que01.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

# 圖像二值化
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
# 形態(tài)學(xué)開(kāi)運(yùn)算去除噪聲和平滑圖像
se = cv.getStructuringElement(cv.MORPH_RECT, (3, 3), (-1, -1))
binary = cv.morphologyEx(binary, cv.MORPH_OPEN, se)
cv.imshow("binary", binary)

# 提取圖像中的輪廓
contours, hierarchy = cv.findContours(binary, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)

height, width = src.shape[:2]
for c in range(len(contours)):
    x, y, w, h = cv.boundingRect(contours[c])
    area = cv.contourArea(contours[c])
    # 根據(jù)條件過(guò)濾不符合要求的輪廓
    if h > (height//2):
        continue
    if area < 150:
        continue
    cv.rectangle(src, (x, y), (x+w, y+h), (0, 0, 255), 1, 8, 0)
    cv.drawContours(src, contours, c, (0, 255, 0), 2, 8)

cv.imshow("result", src)
cv.imwrite("binary2.png", src)

cv.waitKey(0)
cv.destroyAllWindows()

運(yùn)行結(jié)果如下:

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

示例2:
原圖:

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

修改上面的圖片路徑地址運(yùn)行看效果

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

對(duì)于明顯的缺陷檢測(cè)還是可以的,但是實(shí)際生產(chǎn)的缺陷肯定不是這么明顯的,如下圖:

opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè)),opencv實(shí)戰(zhàn),計(jì)算機(jī)視覺(jué),人工智能,opencv,人工智能,計(jì)算機(jī)視覺(jué),目標(biāo)檢測(cè)

后續(xù)講解這類的缺陷該如何檢測(cè),敬請(qǐng)期待?。。。?span toymoban-style="hidden">文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-682519.html

到了這里,關(guān)于opencv 案例05-基于二值圖像分析(簡(jiǎn)單缺陷檢測(cè))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之十一 簡(jiǎn)單給視頻添加水印圖片效果

    Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之十一 簡(jiǎn)單給視頻添加水印圖片效果

    目錄 Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之十一 簡(jiǎn)單給視頻添加水印圖片效果 一、簡(jiǎn)單介紹 二、簡(jiǎn)單給視頻添加水印圖片效果實(shí)現(xiàn)原理 三、簡(jiǎn)單給視頻添加水印圖片效果案例實(shí)現(xiàn)簡(jiǎn)單步驟 四、注意事項(xiàng) Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)

    2024年04月25日
    瀏覽(102)
  • Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之五 簡(jiǎn)單指定視頻某片段重復(fù)播放效果

    Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之五 簡(jiǎn)單指定視頻某片段重復(fù)播放效果

    目錄 Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之五 簡(jiǎn)單指定視頻某片段重復(fù)播放效果 一、簡(jiǎn)單介紹 二、簡(jiǎn)單指定視頻某片段重復(fù)播放效果實(shí)現(xiàn)原理 三、簡(jiǎn)單指定視頻某片段重復(fù)播放效果案例實(shí)現(xiàn)簡(jiǎn)單步驟 四、注意事項(xiàng) Python是一種跨平臺(tái)的計(jì)算機(jī)

    2024年04月12日
    瀏覽(93)
  • Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之六 簡(jiǎn)單指定視頻某片段慢放效果

    Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之六 簡(jiǎn)單指定視頻某片段慢放效果

    目錄 Python 基于 OpenCV 視覺(jué)圖像處理實(shí)戰(zhàn) 之 OpenCV 簡(jiǎn)單視頻處理實(shí)戰(zhàn)案例 之六 簡(jiǎn)單指定視頻某片段慢放效果 一、簡(jiǎn)單介紹 二、簡(jiǎn)單指定視頻某片段慢放效果實(shí)現(xiàn)原理 三、簡(jiǎn)單指定視頻某片段慢放效果案例實(shí)現(xiàn)簡(jiǎn)單步驟 四、注意事項(xiàng) Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言

    2024年04月14日
    瀏覽(93)
  • OpenCV函數(shù)應(yīng)用:基于二值圖像的三種孔洞填充方法記錄(附python,C++代碼)

    OpenCV函數(shù)應(yīng)用:基于二值圖像的三種孔洞填充方法記錄(附python,C++代碼)

    函數(shù)系列: OpenCV函數(shù)簡(jiǎn)記_第一章數(shù)字圖像的基本概念(鄰域,連通,色彩空間) OpenCV函數(shù)簡(jiǎn)記_第二章數(shù)字圖像的基本操作(圖像讀寫(xiě),圖像像素獲取,圖像ROI獲取,圖像混合,圖形繪制) OpenCV函數(shù)簡(jiǎn)記_第三章數(shù)字圖像的濾波處理(方框,均值,高斯,中值和雙邊濾波) OpenC

    2024年02月05日
    瀏覽(30)
  • opencv-圖像處理基礎(chǔ)-二值圖像

    opencv-圖像處理基礎(chǔ)-二值圖像

    1.二值圖像 二值圖像是指僅僅包含黑色和白色兩種顏色的圖像。 在計(jì)算機(jī)中,通過(guò)一個(gè)柵格狀排列的數(shù)據(jù)集(矩陣)來(lái)表示和處理圖像。例如,圖 2-1 是 一個(gè)字母 A 的圖像,計(jì)算機(jī)在處理該圖像時(shí),會(huì)首先將其劃分為一個(gè)個(gè)的小方塊,每一個(gè)小方 塊就是一個(gè)獨(dú)立的處理單位

    2024年02月15日
    瀏覽(26)
  • OpenCV圖像處理----圖像的二值化

    OpenCV圖像處理----圖像的二值化

    圖像二值化( Image Binarization) 就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過(guò)程。 二值化的原理 OpenCV提供的圖像二值化API threshold()方法參數(shù): 圖片矩陣 閾值 圖片中的最大值 二值化的方式 二值化的方式: THRESH_BINARY 高于閾值改為

    2024年02月12日
    瀏覽(21)
  • opencv(20) 圖像閾值(二值化)

    opencv(20) 圖像閾值(二值化)

    二值化核心思想,設(shè)閾值,大于閾值的為0(黑色)或 255(白色),使圖像稱為黑白圖。 閾值可固定,也可以自適應(yīng)閾值。 自適應(yīng)閾值一般為一點(diǎn)像素與這點(diǎn)為中序的區(qū)域像素平均值或者高斯分布加權(quán)和的比較,其中可以設(shè)置一個(gè)差值也可以不設(shè)置。 圖像的閾值化旨在提取

    2024年02月02日
    瀏覽(24)
  • OpenCV(八):圖像二值化

    OpenCV(八):圖像二值化

    目錄 1.固定值二值化 2.自適應(yīng)閾值二值化 3.Android JNI完整代碼 1.固定值二值化 固定閾值二值化是OpenCV中一種簡(jiǎn)單而常用的圖像處理技術(shù),用于將圖像轉(zhuǎn)換為二值圖像。在固定閾值二值化中,像素值根據(jù)一個(gè)預(yù)定義的閾值進(jìn)行分類,大于閾值的像素被設(shè)置為白色,而小于或等于

    2024年02月10日
    瀏覽(24)
  • 使用OpenCV C++進(jìn)行圖像二值化操作

    使用OpenCV C++進(jìn)行圖像二值化操作

    threshold()將固定閾值應(yīng)用于多通道圖像陣列,通常用于從灰度圖像中獲得二值圖像或用于去除噪聲,即濾除值過(guò)小或過(guò)大的像素。該函數(shù)支持幾種類型的閾值設(shè)置,它們由類型參數(shù)決定。 src:輸入數(shù)組(多通道,8位或32位浮點(diǎn)數(shù)) dst:輸出數(shù)組(與src的尺寸、類型、通道數(shù)相

    2024年02月03日
    瀏覽(25)
  • 【OpenCV】 基礎(chǔ)入門(mén)(二)圖像基礎(chǔ)概念 | 圖像灰度化處理 | 圖像二值化處理

    【OpenCV】 基礎(chǔ)入門(mén)(二)圖像基礎(chǔ)概念 | 圖像灰度化處理 | 圖像二值化處理

    ??在計(jì)算機(jī)中用一般用 M x N 的矩陣來(lái)表示一幅尺寸大小為 M x N 的數(shù)字圖像,矩陣元素的值就是該圖像對(duì)應(yīng)位置上的像素值。 ?? 對(duì)于計(jì)算機(jī)本地磁盤(pán)中的彩色圖像,單機(jī)鼠標(biāo)右鍵,選擇“屬性”,可以看到一幅圖像的基本信息。 1、灰度圖: ??灰度圖是每個(gè)像素只有一

    2024年04月14日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包