亚洲mv大片欧洲mv大片入口,国产粉嫩无码一区二区三区,国内精品自产拍在线观看91,久久久亚洲欧洲日产国码二区,中文字幕人妻久久一区二区三区

常州機器視覺培訓(xùn)

常州上位機軟件開發(fā)

常州工業(yè)機器人編程設(shè)計培訓(xùn)

常州PLC培訓(xùn)

常州PLC

常州PLC編程培訓(xùn)

常州電工培訓(xùn)

常州和訊plc培訓(xùn)中心歡迎您!
當前位置:網(wǎng)站首頁 > 新聞中心 新聞中心
Opencv實現(xiàn)PCB印刷缺陷檢測-常州上位機學(xué)習(xí),常州機器視覺學(xué)習(xí)
日期:2024-3-28 14:12:47人氣:  標簽:常州上位機學(xué)習(xí) 常州機器視覺學(xué)習(xí)

摘要

本篇來用OpenCV實現(xiàn)Halcon中一個簡單的PCB印刷缺陷檢測實例。Halcon中對應(yīng)的例子為pcb_inspection.hdev。并自定義一個正八邊形結(jié)構(gòu)元素進行開運算,閉運算,然后做差將缺陷標記顯示。


原圖如下:

1711416462.png

Halcon代碼比較簡單,這里也貼出來,短短13行:


read_image (Image, 'pcb')

dev_close_window ()

get_image_size (Image, Width, Height)

dev_open_window (0, 0, Width, Height, 'black', WindowHandle)

dev_display (Image)

* detect defects ...

gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon')

gray_closing_shape (Image, ImageClosing, 7, 7, 'octagon')

dyn_threshold (ImageOpening, ImageClosing, RegionDynThresh, 75, 'not_equal')

dev_display (Image)

dev_set_color ('red')

dev_set_draw ('margin')

dev_display (RegionDynThresh)

opencv實現(xiàn):


 (一)自定義正八邊形結(jié)構(gòu)元素


    Mat gray,src_open,src_close,dst;

    Mat src = imread("D:/opencv練習(xí)圖片/pcb缺陷檢測.png");

    imshow("原圖", src);

    cvtColor(src, gray, COLOR_RGB2GRAY);

    Mat kernel = Mat::ones(Size(7, 7), CV_8UC1);

    kernel.at(0, 0) = 0;

    kernel.at(0, 1) = 0;

    kernel.at(0, 5) = 0;

    kernel.at(0, 6) = 0;

    kernel.at(1, 0) = 0;

    kernel.at(1, 6) = 0;

    kernel.at(5, 0) = 0;

    kernel.at(5, 6) = 0;

    kernel.at(6, 0) = 0;

    kernel.at(6, 1) = 0;

    kernel.at(6, 5) = 0;

    kernel.at(6, 6) = 0;

    cout << kernel << endl;


 這里對矩陣的分別賦值,其實有一個填充函數(shù)fillPloy()(只需輸入頂點坐標即可)


 (二)對圖像開運算,閉運算,做差


    morphologyEx(gray, src_open, MORPH_OPEN, kernel);

    imshow("開運算", src_open);

    morphologyEx(gray, src_close, MORPH_CLOSE, kernel);

    imshow("閉運算", src_close);

    absdiff(src_open, src_close, dst);

    imshow("做差", dst);

 開運算:                                                                                                                                   


 閉運算:


 二者做差:


 可以看到,白色的點就是缺陷的位置。


 (三)二值化,尋找輪廓,顯示


    threshold(dst, dst, 80, 255, THRESH_BINARY);

    vector<vector>contours;

    findContours(dst, contours, RETR_EXTERNAL, CHAIN_APPROX_NONE, Point());

    drawContours(src, contours, -1, Scalar(0, 0, 255), 2, 8);

    imshow("顯示缺陷", src);


本文網(wǎng)址:
下一篇:沒有資料

相關(guān)信息:
版權(quán)所有 CopyRight 2006-2017 江蘇和訊自動化設(shè)備有限公司 常州自動化培訓(xùn)中心 電話:0519-85602926 地址:常州市新北區(qū)府琛商務(wù)廣場2號樓1409室
蘇ICP備14016686號-2 技術(shù)支持:常州山水網(wǎng)絡(luò)
本站關(guān)鍵詞:常州PLC培訓(xùn) 常州PLC編程培訓(xùn) 常州PLC編程 常州PLC培訓(xùn)班 網(wǎng)站地圖 網(wǎng)站標簽
在線與我們?nèi)〉寐?lián)系
亚洲mv大片欧洲mv大片入口,国产粉嫩无码一区二区三区,国内精品自产拍在线观看91,久久久亚洲欧洲日产国码二区,中文字幕人妻久久一区二区三区