freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于數(shù)字圖像處理技術(shù)的缺陷檢測算法研究-資料下載頁

2025-06-23 18:03本頁面
  

【正文】 點檢測方法有兩種:(1) 提取圖像邊緣,并以鏈碼形式表示,然后尋找具有最大曲率的點作為角點。(2) 對圖像灰度進(jìn)行操作,計算圖像灰度分布的曲率,以最大曲率的點作為角點。2) Harris算法Harris算子是Harris在1988年提出的[13]。Harris角點檢測只是涉及到簡單的矩陣和一階導(dǎo)數(shù)運算,能夠根據(jù)閾值提取出局部“興趣點”。Harris法是角點檢測的常用方法,它的原理是利用水平、豎直兩個差分算子Ix、Iy, 求得m的4個元素值,并對圖像每個像素進(jìn)行濾波,最后根據(jù)求得的角點陣cim的值來確定每個點是否為角點。 其中: 角點最直觀的印象就是在水平、豎直兩個方向上變化均較大的點,即Ix、Iy都較大。Ix、Iy是沿著水平和垂直方向的差分算子。這也是把角點和圖像邊緣、以及平坦地區(qū)區(qū)分的依據(jù)。邊緣:僅在水平、或者僅在豎直方向有較大的變化量,即Ix、Iy只有其一較大。平坦地區(qū):在水平、豎直方向的變化量均較小,即Ix、Iy都較小。3) Matlab仿真結(jié)果:圖 31 中(a),(b)是兩幅待配準(zhǔn)的圖像,圖 32 (c)是用通過Harris角點特征特征的匹配關(guān)系建立圖像之間的配準(zhǔn)映射關(guān)系,圖 32 (d)是兩圖配準(zhǔn)之后的圖像。 (a) 提取角點的待配準(zhǔn)圖A (b)提取角點的待配準(zhǔn)圖B圖 31 提取角點的待配準(zhǔn)圖 (c) A和B之間的配準(zhǔn)映射關(guān)系 (d) A、B基于Harris 角點檢測的配準(zhǔn)圖圖 32 A、B之間的配準(zhǔn)關(guān)系由以上圖 32可以看出,配準(zhǔn)后的2幅圖融合的不錯,只是中間在2幅圖銜接的地方由于算法的問題導(dǎo)致銜接處有一道劃痕。這個問題目前還沒有做進(jìn)一步的探討。 OpenCV的運用和VC++、Xavis的聯(lián)合調(diào)試的實現(xiàn) OpenCV的基本概念OpenCV的全稱是:Open Source Computer Vision Library, 是Intel公司支持的開源計算機(jī)視覺庫。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法[14]。 OpenCV的應(yīng)用計算機(jī)視覺市場巨大而且持續(xù)增長,且這方面沒有標(biāo)準(zhǔn)API,目前的計算機(jī)視覺軟件大概有以下三種: 1) 研究代碼(慢,不穩(wěn)定,獨立并與其他庫不兼容) 2) 耗費很高的商業(yè)化工具(比如Halcon, MATLAB+Simulink) 3) 依賴硬件的一些特別的解決方案(比如視頻監(jiān)控,制造控制系統(tǒng),醫(yī)療設(shè)備) 這是目前的現(xiàn)狀。而標(biāo)準(zhǔn)的API將簡化計算機(jī)視覺程序和解決方案的開發(fā)。OpenCV致力于成為這樣的標(biāo)準(zhǔn)API。目前OpenCV的應(yīng)用領(lǐng)域有以下幾個方面:1) 人機(jī)互動 2) 物體識別 3) 圖象分割 4) 人臉識別 5) 動作識別 6) 運動跟蹤 7) 機(jī)器人 OpenCV的基本數(shù)據(jù)機(jī)構(gòu):IplImage結(jié)構(gòu)由于OpenCV主要針對的是計算機(jī)視覺方面的處理,因此在函數(shù)庫中,最重要的結(jié)構(gòu)體是IplImage結(jié)構(gòu)。IplImage結(jié)構(gòu)來源于Intel的另外一個函數(shù)庫Intel Image Processing Library (IPL),該函數(shù)庫主要是針對圖像處理。IplImage結(jié)構(gòu)具體定義如下[14][16]:  typedef struct _IplImage  {  int nSize。 /* IplImage大小 */  int ID。 /* 版本 (=0)*/  int nChannels。 /* OPENCV支持的1,2,3 或 4 個通道 */  int alphaChannel。 /* 被OpenCV忽略 */  int depth。 /* 像素的位深度*/  char colorModel[4]。 /* 被OpenCV忽略 */  char channelSeq[4]。 /* 同上 */  int dataOrder。 /* 交叉存取圖像通道 */  int origin。 /*圖像原點位置*/  int align。 /* 圖像行排列方式 */  int width。 /* 圖像寬像素數(shù) */  int height。 /* 圖像高像素數(shù)*/  struct _IplROI *roi。 /* 圖像感興趣區(qū)域 */  struct _IplImage *maskROI。 /* 在 OpenCV中必須為NULL */  void *imageId。 /* 同上*/  struct _IplTileInfo *tileInfo。 /*同上*/  int imageSize。 /* 圖像數(shù)據(jù)大小*/  char *imageData。 /* 指向排列的圖像數(shù)據(jù) */  int widthStep。 /* 排列的圖像行大小,以字節(jié)為單位 */  int BorderMode[4]。 /* 邊際結(jié)束模式, 在 OpenCV 被忽略*/  int BorderConst[4]。 /* 同上 */  char *imageDataOrigin。 /* 指針指向一個不同的圖像數(shù)據(jù)結(jié)構(gòu)*/  } IplImage。IplImage結(jié)構(gòu)體是整個OpenCV函數(shù)庫的基礎(chǔ),在定義該結(jié)構(gòu)變量時需要用到函數(shù)cvCreatImage,變量定義方法如下: IplImage* src=/cvCreateImage(cvSize(400,300), IPL_DEPTH_8U,3)。 上句定義了一個IplImage指針變量src,圖像的大小是400300,圖像顏色深度8位,3通道圖像。 Xavis、VC++、OpenCV聯(lián)合調(diào)試實現(xiàn)缺陷檢測算法Xavis具有開放式結(jié)構(gòu)的特點,允許用戶添加自定義算法函數(shù),實現(xiàn)算法庫的擴(kuò)展。在添加自定義算法過程中,為方便程序調(diào)試和修改,可采用聯(lián)合調(diào)試的辦法。Xavis軟件支持OpenCV,即在用戶自定義算法中可以調(diào)用OpenCV庫中的優(yōu)秀算法。本節(jié)簡述一下聯(lián)合調(diào)試與利用OpenCV庫進(jìn)行算法庫擴(kuò)展時應(yīng)注意的相關(guān)問題[2]。1)當(dāng)需要與 Xavis軟件進(jìn)行聯(lián)合調(diào)試時,可將Xavis軟件拷貝至當(dāng)前工程目錄下release子目錄(必要時將軟件當(dāng)前目錄下的cv與win文件夾中的文件全部移動至上層目錄)。并更改配置[8],如圖 33所示:圖 33 更該工程配置2)利用OpenCV算法庫進(jìn)行自定義開發(fā)時,[2]:(1) 選擇ToolsOptions,在Directories選項卡中添加文件路徑信息,如圖 34所示:圖 34 添加OpenCV庫路徑信息 (2)選擇ProjectSettings在Link選項卡中做如圖 35修改:圖 35 添加OpenCV庫信息(3)作以上的修改后,就可以在VC++下編寫用于實現(xiàn)缺陷檢測的動態(tài)鏈接庫dll文件,調(diào)試無誤后,導(dǎo)入工業(yè)組態(tài)軟件Xavis中,就可以運行了,如圖圖 36所示:圖 36 給Xavis添加dll文件 本章小結(jié)本章首先介紹了Matlab用于圖像處理的仿真方法,然后用Matlab實現(xiàn)了基于Harris角點檢測的圖像配準(zhǔn),取得了不錯的結(jié)果。其次,本章著重介紹了OpenCV的概念和用法,研究并實現(xiàn)了Xavis、VC++、OpenCV三者的聯(lián)合調(diào)試。為后續(xù)的VC++下研究算法并打包成dll文件供Xavis調(diào)用提供了基礎(chǔ)。4 基于圖像處理的表面缺陷檢測算法研究與實現(xiàn)在第三章中詳細(xì)地介紹了圖像處理的基本算法,并用Matlab實現(xiàn)了一些功能的仿真。并粗略介紹了OpenCV的功能和應(yīng)用。本章結(jié)合給定的待檢測圖片,綜合利用上二章中所介紹的算法,實現(xiàn)給定圖像的缺陷檢測。本章首先介紹了檢測的流程,然后討論了最重要的幾種圖像配準(zhǔn)算法。由于給定的圖像的種類比較多,不可能一一介紹每種圖像的檢測算法,只介紹了三種種圖片的檢測算法。 基于圖像處理的缺陷檢測基本流程用VC++給Xavis 添加圖像表面缺陷檢測的動態(tài)鏈接庫文件,其中圖像處理的缺陷檢測基本流程如下:圖 41 缺陷檢測基本流程圖該算法的關(guān)鍵是圖像配準(zhǔn)算法和圖像比對算法的選擇,這是算法復(fù)雜性的重要因素之一。另外,算法還要求一定得魯棒性,這里不再贅述。 基于形態(tài)學(xué)處理的缺陷檢測算法研究與實現(xiàn)基于形態(tài)學(xué)處理的缺陷檢測主要用來檢測的是軸承表面的缺陷檢測,待檢測圖如圖 42 :圖 42 待檢測圖像由上圖可以看出,產(chǎn)品缺陷主要是在兩個圓環(huán)之間的區(qū)域,因此只要將兩個圓環(huán)檢測出來確定缺陷所在區(qū)域,然后再用閾值分割法即可確定出缺陷的具體位置,基于此點,我們設(shè)計了以下的處理算法來標(biāo)定缺陷。 高斯濾波,平滑圖像1) 高斯濾波的概念高斯濾波實質(zhì)上是一種信號的濾波器,其用途是信號的平滑處理,我們知道數(shù)字圖像用于后期應(yīng)用,其噪聲是最大的問題,由于誤差會累計傳遞等原因,很多圖像處理教材會在很早的時候介紹Gauss濾波器,用于得到信噪比SNR較高的圖像(反應(yīng)真實信號)。于此相關(guān)的有GaussLapplace變換,其實就是為了得到較好的圖像邊緣,先對圖像做Gauss平滑濾波,剔除噪聲,然后求二階導(dǎo)矢,用二階導(dǎo)的過零點確定邊緣,在計算時也是頻域乘積=空域卷積。 濾波器就是建立的一個數(shù)學(xué)模型,通過這個模型來將圖像數(shù)據(jù)進(jìn)行能量轉(zhuǎn)化,能量低的就排除掉,噪聲就是屬于低能量部分 其實編程運算的話就是一個模板運算,拿圖像的八連通區(qū)域來說,中間點的像素值就等于八連通區(qū)的像素值的均值,這樣達(dá)到平滑的效果。 若使用理想濾波器,會在圖像中產(chǎn)生振鈴現(xiàn)象。采用高斯濾波器的話,系統(tǒng)函數(shù)是平滑的,避免了振鈴現(xiàn)象。2) cvSmooth函數(shù)[16]cvSmooth( const void* srcarr, void* dstarr, int smoothtype,int param1, int param2, double param3 )cvSmooth函數(shù)的作用是對圖象做各種方法的圖象平滑。其中,srcarr為輸入圖象;dstarr為輸出圖象;param1為平滑操作的第一個參數(shù);param2為平滑操作的第二個參數(shù)(如果param2值為0,則表示它被設(shè)為param1);param3是對應(yīng)高斯參數(shù)的標(biāo)準(zhǔn)差。參數(shù)smoothtype是圖象平滑的方法選擇,主要的平滑方法有以下五種: CV_BLUR_NO_SCALE:簡單不帶尺度變換的模糊,即對每個象素在 param1param2領(lǐng)域求和。CV_BLUR:對每個象素在param1param2鄰域求和并做尺度變換 1/(param1?param2)。CV_GAUSSIAN:對圖像進(jìn)行核大小為param1param2的高斯卷積。CV_MEDIAN:對圖像進(jìn)行核大小為param1param1 的中值濾波(鄰域必須是方的)。CV_BILATERAL:雙向濾波,應(yīng)用雙向 3x3 濾波,彩色設(shè)置為param1,空間設(shè)置為param2。 二值化前景圖本步驟對圖像進(jìn)行閾值分割,將灰度圖像轉(zhuǎn)化成二值圖像。1) 二值化一幅圖像包括目標(biāo)物體、背景還有噪聲,要想從多值二值化的數(shù)字圖像中直接提取出目標(biāo)物體,最常用的方法就是設(shè)定一個閾值T,用T將圖像的數(shù)據(jù)分成兩部分:大于T的像素群和小于T的像素群。這是研究灰度變換的最特殊的方法,稱為圖像的二值化(BINARIZATION)[11]。圖像的二值化,就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的只有黑和白的視覺效果。2) cvThreshold函數(shù)cvThreshold是opencv庫中的一個函數(shù)作用:函數(shù) cvThreshold 對單通道數(shù)組應(yīng)用固定閾值操作。該函數(shù)的典型應(yīng)用是對灰度圖像進(jìn)行閾值操作得到二值圖像。 或者是去掉噪聲,例如過濾很小或很大象素值的圖像點。本函數(shù)支持的對圖像取閾值的方法由 threshold_type 確定。形式:void cvThreshold( const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type )。其中:src:原始數(shù)組 (單通道 , 8bit of 32bit 浮點數(shù))。dst:輸出數(shù)組,必須與 src 的類型一致,或者為 8bit。threshold:閾值 max_value:使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。  threshold_type:閾值類型 threshold_type=CV_THRESH_BINARY:如果 src(x,y)threshold 0,dst(x,y) = max_value, 否則. threshold_type=CV_THRESH_BINARY_INV: 如果 src(x,y)threshold,dst(x,y) = 0。 否則,dst(x,y) = ma
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1