国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于OpenCV的織物疵點檢測方法

2010-11-16 05:20:32陸趣趣陳傳克徐曉龍賈小軍
絲綢 2010年4期
關(guān)鍵詞:疵點圖像處理織物

陸趣趣,陳傳克,徐曉龍,虞 佳,賈小軍

(嘉興學(xué)院 數(shù)學(xué)與信息工程學(xué)院, 浙江 嘉興 314001)

一種基于OpenCV的織物疵點檢測方法

陸趣趣,陳傳克,徐曉龍,虞 佳,賈小軍

(嘉興學(xué)院 數(shù)學(xué)與信息工程學(xué)院, 浙江 嘉興 314001)

在織物疵點自動檢測開發(fā)中,傳統(tǒng)的圖像處理代碼編寫繁瑣、效率不高。OpenCV具有較強(qiáng)的圖像處理能力且提供了豐富的圖像處理函數(shù),可以把OpenCV運(yùn)用到織物疵點檢測上。以斷經(jīng)、緯疵樣本為例,提出在OpenCV環(huán)境下采用閾值分割提取疵點圖像,利用形態(tài)學(xué)技術(shù)實現(xiàn)噪點分離及斷線連接。邊緣檢測實現(xiàn)了疵點圖像在原圖像中的準(zhǔn)確定位。實驗結(jié)果表明,OpenCV有簡化代碼、提高編程效率的圖像處理強(qiáng)大功能,疵點檢測結(jié)果準(zhǔn)確,效率高。

OpenCV;疵點檢測;閾值分割

在紡織品生產(chǎn)過程中,質(zhì)量控制與檢測非常重要,織物疵點檢測是其中最重要的一部分。采用人工檢測織物疵點,在檢測過程中會由于人的一些主觀或客觀因素,使檢測結(jié)果受到影響。如,一個檢驗員精力集中的最長時間只有20~30 min,超過這個時間就會疲勞,注意力就會降低,引起漏檢。檢驗員的工作狀態(tài)同時受外界因素的影響,如疵點類型和大小、頻率、天氣、身體情況等也影響著檢查結(jié)果。

隨著計算機(jī)技術(shù)及數(shù)字圖像處理技術(shù)的發(fā)展,基于圖像處理和微機(jī)平臺的織物疵點自動檢測成為可能。以攝像頭和圖像采集卡獲取織物圖像信息,由計算機(jī)執(zhí)行相應(yīng)的圖像處理程序來進(jìn)行織物疵點的監(jiān)測,這降低了生產(chǎn)成本,提高了產(chǎn)品質(zhì)量及生產(chǎn)效率,減輕了工人的勞動強(qiáng)度?;趫D像處理的織物疵點自動檢測克服了人工織物疵點檢測的大部分缺點。但如果只使用Matlab,C++,C++.net等一些開發(fā)工具來開發(fā)編寫織物疵點檢測程序,會因為代碼繁瑣,且因編寫的代碼量大,從而導(dǎo)致代碼編寫困難,耗時,維護(hù)困難。因此需要一個計算機(jī)視覺函數(shù)庫來方便開發(fā)和編寫圖像處理程序。OpenCV[1-4]是計算機(jī)視覺庫,由一系列C函數(shù)和少量C++類構(gòu)成,它實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法,可以非常方便地嵌入到C或C++開發(fā)平臺,大大縮短應(yīng)用程序的開發(fā)周期,降低代碼編寫難度。其強(qiáng)大的圖像處理功能在計算機(jī)視覺領(lǐng)域可以廣泛應(yīng)用。

本研究利用OpenCV數(shù)據(jù)結(jié)構(gòu)及常用圖像處理算法,提出一種織物疵點檢測系統(tǒng)新的開發(fā)平臺,利用此環(huán)境,對現(xiàn)有織物疵點算法進(jìn)行改進(jìn),并和OpenCV視覺庫結(jié)合,開發(fā)出具有較高效率的織物疵點檢測系統(tǒng)。相對于Matlab,一般的C或C++通用平臺,基于OpenCV的疵點檢測系統(tǒng)開發(fā)周期短,程序運(yùn)行速度快,疵點檢測準(zhǔn)確。

1 OpenCV特性

OpenCV具有以下特征:開源計算機(jī)視覺庫,采用C/C++編寫;使用目的是開放實時應(yīng)用程序;獨(dú)立于操作系統(tǒng)、硬件和圖形管理器;具有通用的圖像/視頻載入、保存和獲取模塊;具有底層和高層的應(yīng)用開發(fā)包。

應(yīng)用OpenCV能實現(xiàn)以下功能:對圖像數(shù)據(jù)的操作,包括分配、釋放、復(fù)制、設(shè)置和轉(zhuǎn)換數(shù)據(jù);對圖像和視頻的輸入輸出;具有對矩陣和向量的操作以及線性代數(shù)的算法程序;可對各種動態(tài)數(shù)據(jù)結(jié)構(gòu),如列表、隊列、集合、樹和圖進(jìn)行操作;具有基本數(shù)字圖像處理能力,如可進(jìn)行濾波、邊緣檢測、角點檢測、采樣和差值、色彩轉(zhuǎn)換、形態(tài)操作、直方圖和圖像金字塔操作;可對各種結(jié)構(gòu)進(jìn)行分析,包括連接部件分析、輪廓處理、距離變換、各種距的計算、模板匹配、Hough變換、多邊形逼近、直線擬合和Delaunay三角劃分等;對攝像頭的定標(biāo),包括發(fā)現(xiàn)與跟蹤定標(biāo)模式、定標(biāo)、基本矩陣估計、齊次矩陣估計和立體對應(yīng);對運(yùn)動的分析,如對光流、運(yùn)動分割和跟蹤的分析;對目標(biāo)的識別,可采用特征法和隱馬爾可夫模型法;具有基本的GUI功能,等等。

OpenCV自1999年1月發(fā)布Alpha版本開始,它就被廣泛用在許多領(lǐng)域、產(chǎn)品和研究成果中[5]。相關(guān)應(yīng)用包括衛(wèi)星地圖和電子地圖的拼接,掃描圖像的對齊,醫(yī)學(xué)圖像去噪(消噪或濾波),圖像中的物體分析,安全和入侵檢測系統(tǒng),自動監(jiān)視和安全系統(tǒng),制造業(yè)中的產(chǎn)品質(zhì)量檢測系統(tǒng),攝像機(jī)標(biāo)定,軍事應(yīng)用以及聲音和音樂識別等領(lǐng)域。OpenCV的最新版本是于2009年10月1日發(fā)布的OpenCV-2.0.0a-win32.exe,文獻(xiàn)[6]給出了最新下載地址。

2 .Net下OpenCV視覺庫的配置

OpenCV作為一個獨(dú)立的計算機(jī)視覺庫,不能直接使用,必須先進(jìn)行安裝。先從官方網(wǎng)站下載OpenCV的最新版本,然后進(jìn)行安裝,安裝方法等同于一般應(yīng)用程序的安裝。本研究假設(shè)OpenCV安裝在目錄“C:Program FilesOpenCV”。安裝好OpenCV后,為了正確使用OpenCV,須配置其應(yīng)用環(huán)境。不同的編譯器,配置方法略有不同。下面給出.Net環(huán)境下的配置方法。

第一步,在“我的電腦”的屬性選項卡中添加環(huán)境變量“C:Program FilesOpenCVlib”。

第二步,打開VC++.net應(yīng)用程序,在菜單項里選擇:Tools→Options。在列表中選擇Projects→VC++Directories。從“Show Directories for”的“List Box”中選擇“Library files”。單擊“Insert New”圖標(biāo),定位要安裝OpenCV的文件夾。假設(shè)它安裝于“C:Program FilesOpenCV”。在庫文件列表中,定位并添加“C:Program FilesOpenCVlib”。

第三步,在“List Box”中選擇“Include”文件,定位并添加以下路徑:

C:Program FilesOpenCVcvinclude;

C:Program FilesOpenCVcxcoreinclude;

C:Program FilesOpenCVotherlibshighgui。

第四步,選擇“List Box”中的“Source”文件,定位并添加以下路徑:

C:Program FilesOpenCVcvsrc;

C:Program FilesOpenCVcxcoresrc;

C:Program FilesOpenCVotherlibshighgui。

最后,創(chuàng)建一個項目,在程序開頭添加相應(yīng)的#include語句,并在菜單:“Project”→“Properties”,選擇“Link”→“Input”→“Additional Dependencies”。添加所有需要的庫,如cv.lib,cxcore.lib,highgui.lib等。完成以上步驟,就可以使用OpenCV函數(shù),運(yùn)行OpenCV程序。

3 OpenCV疵點檢測實現(xiàn)

3.1 算法分析

算法的思想是找出正常圖像灰度值的可信區(qū)間,把疵點和背景分離,提取出疵點的特征值,最后進(jìn)行處理。算法分成4個部分:圖像采集、計算可信區(qū)間、提取疵點特征值、疵點處理。

OpenCV可以從攝像頭中采集織物表面圖像,采集到的圖像是彩色的BMP格式。在分析圖像之前可以使用OpenCV中的cvCvtColor函數(shù)把采集到的BMP格式的彩色圖像轉(zhuǎn)換成灰度圖像。

提取疵點特征值,首先要將采集的原圖像進(jìn)行閾值分割[7-9],即把疵點圖像從背景圖像中分離出來。圖像閾值分割的關(guān)鍵是閾值選擇。大多單色織物圖像都有一個特點:織物圖像的灰度值幾乎都落在一個較小的灰度值區(qū)間內(nèi),只有一部分由于布匹本身的紋理、光照條件及采集設(shè)備等的影響而落在這個正?;叶戎祬^(qū)間之外。疵點圖像的灰度值必落在這正?;叶戎祬^(qū)間之內(nèi),所以找出這個區(qū)間,及找到這個區(qū)間的上閾值和下閾值就可以把疵點從背景圖像分割出來。可通過正態(tài)分布求可信區(qū)間的方法求出這個區(qū)間。

對織物圖像進(jìn)行正態(tài)分布求可信區(qū)間方法就是把織物圖像上的每一點像素點看作一個樣本,像素點上的灰度值看作樣本值,對其先求解正態(tài)分布,及使用OpenCV的cvAvgSdv函數(shù)統(tǒng)計圖像像素點的平均灰度值mean和標(biāo)準(zhǔn)差devc。最后求上閾值為:mean+2.5*devc.下閾值為:mean-2.5*devc??尚艆^(qū)間為[下閾值,上閾值]。使用正態(tài)分布求可信區(qū)間的方法的優(yōu)點是可以較大程度地減少噪點對閾值選擇的影響。

圖1a是正常織物圖像,圖1b是其灰度圖像像素值從[117,255]的直方圖。計算其可信區(qū)間為[140,175],在這區(qū)間內(nèi)的像素點數(shù)為65 357點,占總像素點數(shù)的99.72 %。圖1c為斷經(jīng)疵點圖像,圖1d為其灰度圖像從[117,255]的像素值直方圖。對比圖1b和圖1d,疵點主要在直方圖1d的左邊部分,即灰度值[124,139]區(qū)間內(nèi)。在這區(qū)間內(nèi)的像素數(shù)占總像素數(shù)的1.54 %。實際疵點所占像素點約為1 548點,占總像素的2.32 %。從上述數(shù)據(jù)表明,此方法可行。

圖1 正??椢锖痛命c織物及其直方圖Fig.1 Normal and Defect Fabrics and their Histograms

3.2 實驗過程

以處理含有斷經(jīng)、緯疵的疵點圖像的實驗為例,利用OpenCV計算機(jī)視覺函數(shù)庫在.Net平臺下編寫上述算法,實現(xiàn)織物疵點檢測。以下是實驗過程中一些運(yùn)行圖片和疵點處理辦法。

圖2是經(jīng)OpenCV中的cvCvtColor函數(shù)轉(zhuǎn)換得到的灰度圖像,分別是斷經(jīng)、緯疵。利用上述的正態(tài)分布求可信區(qū)間方法得到雙閾值,對灰度疵點圖像使用cvThreshold函數(shù)進(jìn)行閾值二值化分割,得到疵點特征值圖像,如圖3所示。

圖2 灰度圖像Fig.2 Gray Images

圖3 閾值分割后的疵點圖Fig.3 Segmentation Results of Fabric Images

圖3的疵點特征圖像有很多噪點,利用OpenCV中的cvMorphologyEx形態(tài)函數(shù)和cvErode腐蝕函數(shù)除去這些噪點,處理效果見圖4。

圖4 腐蝕運(yùn)算后的疵點圖像Fig.4 Eroded Results of Fabric Images

經(jīng)過噪點處理,圖像中仍然存在一些孤立點。這些孤立點大部分是布匹的小疵點。處理這些孤立點的思想是:先把小于一定點尺寸的孤立點當(dāng)作噪點除去;再把尺寸稍大的孤立點當(dāng)作疵點與鄰近的疵點相連接起來。調(diào)用OpenCV中cvFindContours函數(shù)計算各個孤立點的周長,根據(jù)周長剔除噪點。孤立點相連就需要調(diào)用OpenCV中cvGetReal2D函數(shù)和cvSetReal2D函數(shù),逐個訪問圖像中的像素點和修改圖像中的像素值,結(jié)果見圖5。

圖5 對孤立點處理后的圖像Fig.5 Processed Results for Isolated Pixels

最后調(diào)用cvCanny邊緣檢測函數(shù)對圖5中二值化的疵點圖像進(jìn)行邊緣檢測。再調(diào)用cvCopy函數(shù)在原彩色疵點圖像中勾畫出疵點輪廓,進(jìn)行疵點定位,結(jié)果見圖6。

圖6 織物圖像的檢測結(jié)果Fig.6 Located Results for Fabric Images

4 結(jié) 論

在上述實驗中,核心代碼只有120行。說明OpenCV的圖像處理能力較強(qiáng),代碼編寫效率高,解決了程序代碼編寫繁瑣、效率不高等問題。如在程序中要對圖像進(jìn)行邊緣檢測這種需要大量代碼實現(xiàn)的功能時,只需要調(diào)用OpenCV中的邊緣檢測函數(shù),使用一條語句即可,而且疵點檢測、定位準(zhǔn)確。OpenCV是織物疵點自動檢測研究的一個好工具,在織物疵點檢測中可以廣泛使用,提高編程效率。

[1] 劉瑞禎,于仕琪.OpenCV教程——基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,2007.

[2] 賈小軍,喻擎蒼. 基于開源計算機(jī)視覺庫OpenCV的圖像處理[J].計算機(jī)應(yīng)用與軟件,2008,25(4):276-278.

[3] YU Qingcang, CHENG Harry H, CHENG Wayne W, et al.CH OpenCV for Interactive Open Architecture Computer Vision[J]. Advances in Engineering Software, 2004.35(9): 527-536.

[4] YU Qingcang, CHENG Harry H, CHENG Wayne W, et al.Interactive Open Architecture Computer Vision[C]//15th IEEE International Conference on Tools with Artificial Intelligence(ICTAI’03).Sacramento, California,USA: IEIE Computer Society, 11, 2003: 406-410.

[5] 于仕琪,劉瑞禎.學(xué)習(xí)OpenCV[M].北京:清華大學(xué)出版社,2009.

[6] OpenCV-2.0.0a-win32.exe[CP/OL].(2009-10-15)[2009-11-05].http://sourceforge.net/pro- jects /opencvlibrary/files/.

[7] 劉晶璟,劉素一. 基于鏈碼的織物疵點圖像形態(tài)特征提取[J]. 現(xiàn)代電子技術(shù),2007,30(23):155-157.

[8] RADOVAN S, PANAGIOTIS M, CHRISTOS K,et al.Realtime Vision-based System for Textile Fabric Inspection[J].Real-Time Imaging,2001,7(6):507-518.

[9] 劉建立,左保齊.基于小波變換和閾值分割的織物疵點邊緣檢測[J]. 絲綢,2008(8):42-44,50.

A Method of Fabric Defects Detection Based on OpenCV

LU Qu-qu, CHEN Chuan-ke, XU Xiao-long, YU Jia, JIA Xiao-jun
(College of Mathematics and Information Engineering, Jiaxing College, Jiaxing 314001, China)

In the fabric defects automatic detection development, traditional image processing code compilation is tedious and inefficient. OpenCV has powerful image processing ability and providing rich image processing functions, which may be utilized to process fabric defects detection. This paper took broken end, irregular pick fabric as the examples. Under OpenCV environment, using the thresholding segmentation to extract fabric defects image. Morphological techniques can remove noise pixels and connect broken lines. Edge detection achieves positioning defect image in the original image. The experimental results showed that OpenCV had the powerful functions of simplifying code, raising efficiency to process images, and the results of fabric detection were accurate and efficient.

OpenCV; Defects detection; Threshold segmentation

TS101.9;TN911.73

A

1001-7003(2010)04-0038-04

2009-11-05;

2010-03-10

浙江省教育廳大學(xué)生科技創(chuàng)新項目;嘉興市科技局項目(2008AY2014)

陸趣趣(1987- ),男,計算機(jī)科學(xué)與技術(shù)專業(yè),本科生。通訊作者:賈小軍,副教授,xjjiad@sina.com。

猜你喜歡
疵點圖像處理織物
無Sn-Pd活化法制備PANI/Cu導(dǎo)電織物
《紡織品織物折痕回復(fù)角的測定》正式發(fā)布
竹纖維織物抗菌研究進(jìn)展
噴絲板疵點檢測系統(tǒng)設(shè)計
基于FPGA的圖像疵點處理設(shè)計與實現(xiàn)
家蠶品種單粒繭絲疵點差異及遺傳性研究初報
機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:20
模糊圖像處理,刑事偵查利器
圖像處理技術(shù)的實戰(zhàn)應(yīng)用
織物柔軟劑的香氣發(fā)展趨勢
阜平县| 屏山县| 吉安县| 贺州市| 全南县| 嫩江县| 永昌县| 正安县| 河北省| 万山特区| 鄂伦春自治旗| 广昌县| 祁连县| 丽水市| 淄博市| 平潭县| 天长市| 云和县| 武邑县| 博湖县| 麻栗坡县| 八宿县| 武胜县| 柘荣县| 河间市| 尚义县| 高尔夫| 台东市| 宝兴县| 彰化县| 阳江市| 科技| 菏泽市| 贵阳市| 乌拉特前旗| 津南区| 蛟河市| 元朗区| 澎湖县| 横山县| 天柱县|