【《分揀機械手視覺識別圖像過程案例分析》3200字】_第1頁
【《分揀機械手視覺識別圖像過程案例分析》3200字】_第2頁
【《分揀機械手視覺識別圖像過程案例分析》3200字】_第3頁
【《分揀機械手視覺識別圖像過程案例分析》3200字】_第4頁
【《分揀機械手視覺識別圖像過程案例分析》3200字】_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

-PAGEIII-分揀機械手視覺識別圖像過程案例分析目錄TOC\o"1-3"\h\u3306分揀機械手視覺識別圖像過程案例分析 128341.1圖像的概述 168831.2圖片、視頻的讀取 1278421.3圖像預(yù)處理 2211521.3.1圖像閾值 2123521.3.2圖像濾波 3175721.3.3圖像的梯度 6120021.4提取輪廓 7113531.5顏色空間 8102541.6顏色識別 11圖像的概述圖像人類認識世界,了解世界的一種媒介,也是模擬和生成自然景物或現(xiàn)象的一種客觀反應(yīng),更是人們了解世界、認識自身的根源。“圖像”是指反射或投影體的光的分布,“圖像”是指從人類的視覺系統(tǒng)獲得或人腦中所識別的,繪畫、相片、剪貼畫等都是圖像。圖片、視頻的讀取對于圖片的讀取。首先要將其導入OpenCV的庫,并給他取個名字cv,然后使用cv.imread()函數(shù)讀取圖像。其代碼如下所示:importcv2ascvimg=cv.imread("./Resources/lena.jpg",cv.IMREAD_COLOR)ifimgisNone:print("Couldnotreadtheimage")cv.imshow("Displaywindow",img)k=cv.waitkey(0)ifk==ord("s"):cv.imwrite("lena.png",img)視頻的讀取與顯示,和圖片讀取的方式相似,先要將其導入OpenCV的庫,然后使用cv.VideoCaputer()函數(shù)填寫視頻的路徑就可以播放本地視頻了。其代碼如下所示:importcv2ascvfrommatplotlibimportpyplotaspitcap=cv.videocapture('./Resources/vtest.avi')while(cap.isOpened()):ret,frame=cap.read()cv.imshow("frame",frame)ifcv.waitkey(1)&0xFF==ord('q'):break圖像預(yù)處理圖像閾值閾值,也稱為臨界值,是由效應(yīng)產(chǎn)生的最低或最高的值。閾值圖像處理是一種特殊的顏色處理方法。具體地說,閾值是一個關(guān)鍵的轉(zhuǎn)換點,而不管獲得的圖像是什么顏色的,它最終都會把圖片當做黑白照片處理,以設(shè)置的閾值為標準,比閾值大的顏色會轉(zhuǎn)變成白色,低于該值的顏色轉(zhuǎn)換成黑色,所以將會得到一張黑白圖片。其使用的函數(shù)是cv.threshold,它的代碼如下所示:importcv.2ascvimportnumpyasnpfrommatpiotlibimprtpyplotaspltimg=cv.imread('./Resources/gradient.png',0)ret,thresh1=cv.threshold(img,127,255,cv.THRESH_BINARY)ret,thresh2=cv.threshold(img,127,255,cv.THRESH_BINARY_INV)ret,thresh3=cv.threshold(img,127,255,cv.THRESH_TRUNC)ret,thresh4=cv.threshold(img,127,255,cv.THRESH_TOZERO)ret,thresh5=cv.threshold(img,127,255,cv.THRESH_TOZERO_INV)titles=['originalImage','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']foriinrange(6):plt.subplot(2,3,i+1),plt.imshow(image[i],'gray')plt.title(titles[1])plt.xticks([]),plt.yticks([])plt.show()圖像濾波圖像上可以使用不同的高通濾波器以及低通濾波器甚至是其他濾波器,就如同單個自變量描繪敘述的信號。其中低通濾波器的優(yōu)點是有益于圖像模糊、將音去噪等,而高通濾波器的優(yōu)點是有益于獲取圖像的邊緣。平滑圖像是利用低通濾波器的卷積核對圖像進行卷積來實現(xiàn)的,它有益于去除圖像中的噪聲和高頻內(nèi)容,從而使邊緣在運算過程中有一定程度的模糊。OpenCV主要有四種平滑技術(shù)。eq\o\ac(○,1)、均值濾波均值濾波是使用標準化的卷積框來完成的,該圖對卷積核區(qū)域內(nèi)的全部像素取平均,并替換中心元素。這是由函數(shù)cv.blur()或者cv.boxFilter()完成的。33的盒式過濾器,如下所示:importcv2ascvimportnumpyasnpfrommatplotlibimportpyplotaspltimg=cv.imread('./Resources/opencv-logo-white.png')img=cv.cvtColor(img,cv.COLOR_BGR2RGB)blur=cv.blur(img,(5,5))plt.subplot(121),plt.imshow(img),plt.title('Original')plt.xticks([]),plt.yticks([])plt.subplot(122),p1t.imshow(blur),plt.title('Blurred')plt.xticks([]),plt.yticks([])plt.show()eq\o\ac(○,2)、高斯濾波下面把卷積核換成高斯核。它是通過函數(shù)cv.GaussianBlur()完成的。設(shè)置卷積核的寬和高。而且要求卷積核的寬和高的數(shù)值必須為正且為奇數(shù)。指定X的標準偏差為sigmaX和Y的標準偏差為sigmaY。高斯模糊對高斯噪聲的消除非常有效。importcv2ascvimportnumpyasnpfrommatplotlibimportpyplotaspltimg=cv.imread('./Resources/opencv-logo-white.png')img=cv.cvtColor(img,cv.COLOR_BGR2RGB)blur=cv.GaussianBlur(img,(5,5),0)plt.subplot(121),p1t.imshow(img),plt.title('original')plt.xticks([]),p1t.yticks([])plt.subplot(122),plt.imshow(blur),plt.title('Blurred')plt.xticks([]),p1t.yticks([])plt.show()eq\o\ac(○,3)、中值濾波中值濾波是函數(shù)cv.medianBlur()獲取卷積核區(qū)域中全部像素的中位數(shù),并將中心元素替換成中位數(shù)的數(shù)值。這種方法對于圖像中脈沖噪音的消除是非常有效果的。中值模糊下,圖像中的某一個像素總是會替換掉中心元素,這個能夠使噪音明顯降低。在下列演示中,原始圖像不僅使用了中值模糊還加入了噪點。結(jié)果如下:importcv2ascvimportnumpyasnpfrommatplotlibimportpyplotaspltimportrandom#添加椒鹽噪聲defsp_noise(image,prob):output=np.zeros(image.shape,np.uint8)thres=1-probforiinrange(image.shape[0]):forjinrange(image.shape[1]):rdn=random.random()ifrdn<prob:output[i][j]=0elifrdn>thres:output[i][j]=255else:output[i][j]=image[i][j]returnoutputimg=cv.imread('./Resources/opencv-logo-white.png')img=cv.cvtColor(img,cv.COLOR_BGR2RGB)img=sp_noise(img,0.1)median=cv.medianBlur(img,5)plt.subplot(121),plt.imshow(img),plt.title('original')plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(median),plt.title('Blurred')plt.xticks([]),plt.yticks([])plt.show()eq\o\ac(○,4)、雙邊過濾在空間中雙邊過濾也是使用的高斯過濾器,它使用的兩個高斯過濾器,其中一個是像素差的函數(shù)。保留邊緣的原理是:低強度高斯函數(shù)保障僅模糊的像素是具有中心像素基本一樣的強度,所以雙邊過濾保留了邊緣,更大的強度變化將在邊緣處的像素上顯示。雙邊過濾的優(yōu)點是能夠有效的保持邊緣清晰和降低噪聲,它的缺點是相較于其他過濾器,速度較慢。importcv2ascvimportnumpyasnpfrommatplotlibimportpyplotaspltimg=cv.imread('./Resources/opencv-1ogo-white.png')img=cv.cvtColor(img,cv.COLOR_BGR2RGB)blur=cv.bilateralFilter(img,9,75,75)plt.subplot(121),plt.imshow(img),plt.title('Original')plt.xticks([]),plt.yticks([])plt.subplot(122),plt.imshow(blur),plt.title('Blurred')plt.xticks([]),plt.yticks([])plt.show()圖像的梯度將圖像看作一個連續(xù)函數(shù),因為部分邊緣的像素值與相鄰像素的像素值有明顯的不同,所以可以通過搜索圖像的局部極值來獲取整個圖像的邊緣信息。但是圖片是平面的定義域是離散集合的函數(shù),導函數(shù)值就轉(zhuǎn)化為差分,得到的差分就是圖像的梯度。垂直邊緣的提取,如下圖4.1所示,圖4.1卷積核提取圖片邊緣的過程當元素進行差分,明顯看到邊緣值小于(或大于)周圍像素,因此邊緣差的結(jié)果明顯不同,因此借由此差異提取垂直邊緣。相同的,轉(zhuǎn)置上述的矩陣,目的就是為了水平邊緣的提取。此差異操作稱為圖像的梯度計算,此差異操作稱為圖像的梯度計算,此計算如下所示:importcv2ascvimportnumpyasnpfrommatplotlibimportpyplotaspltimg=cv.imread('./Resources/sudoku.png',1)#自己進行垂直邊緣提取kernel=np.array([[-1,0,1],[-2,0,2],[-1,0,1]],dtype=np.float32)dst_v=cv.filter2D(img,-1,kernel)提取輪廓輪廓就是構(gòu)成圖形或物體的外部的線條,就是具有相同的顏色或者強度的連續(xù)點的曲線。輪廓是在物體形態(tài)特征分析、對象檢測和識別方面的有效的工具。查找二值圖像輪廓的過程如下所示:importnumpyasnpimportcv2ascvfrommatplotlibimportpyplotaspltimg=cv.imread('./Resources/shapes1.jpg')imgray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)ret,thresh=cv.threshold(imgray,127,255,cv.THRESH_BINARY)contours,hierarchy=cv.findContours(thresh,cv.RETR_TREE,CV.CHAIN_APPROX_SIMPLE)#創(chuàng)建出兩幅彩色圖用于繪制img_color1=cv.cvtColor(thresh,cv.COLOR_GRAY2BGR)img_color2=np.copy(img_color1)顏色空間顏色空間是構(gòu)成顏色的方式,通過顏色空間和物理設(shè)備的測試,可以獲得顏色的固定模擬和數(shù)字表示,顏色空間可以通過隨機選擇一些顏色來定義,例如,圖像系統(tǒng)只采集一組作為樣本的特定顏色,然后為每種顏色定義名稱和代碼;它也可以基于嚴格的數(shù)學定義,比如AdobeRGB、sRGB。如圖4.2所示。圖4.2顏色空間每一種顏色都能夠通過三原色混合而成,三原色分別是藍色,紅色和黃色。所以顏色空間的定義就是基于三原色產(chǎn)生的。顏色空間是一個三維空間,它的三維空間的z軸坐標系,x軸坐標系和y軸坐標系分別由黃色的量、洋紅的量與青色的量定義。在這個三維空間中所有可能的顏色有一個唯一的位置,但這種坐標系顏色的定義法組成的顏色空間不是唯一的顏色空間?;谌?,研究人員提出了擁有不同特性的顏色空間,常用的有Lab、RGB、HSV和XYZ等。eq\o\ac(○,1)RGB顏色空間RGB(紅色,綠色和藍色)是由人眼可以識別并代表大多數(shù)顏色的顏色定義的空間。但是,RGB色彩空間在科學研究中被廣泛使用,因為很難更改數(shù)字材料的細節(jié)。它結(jié)合了顏色,亮度和飽和度一起顯示。很難分開。這是材料定向的最流行形式。此種模式被彩色監(jiān)視器與大量彩色攝像機所適用。它使用的是單一波長原色,在計算機中R、G、B的范圍都是0到255,所以RGB顏色空間所能表示的顏色種類能夠達到一千六百多萬。如圖4.3(a)(b)所示。(a)(b)圖4.3RGB顏色模型線性色彩空間與人類在在色彩拓撲中的本能不相符。事物都有優(yōu)缺點,此顏色空間的優(yōu)點是它可以直接通過圖像采集裝置得到色彩模型,屬于原始數(shù)據(jù)。缺點是RGB顏色空間中顏色分布不勻,通過計算得出來的結(jié)果不同于人的眼睛效果,顏色信息在空間中混合,不利于進一步提取的顏色特性。eq\o\ac(○,2)HSV顏色空間HSV顏色空間是為了更好地進行數(shù)字色彩處理而提出的,HSX顏色空間有多種類型,其中X可以是V或其他顏色,這取決于X的具體用途和意義。H是色調(diào),S是飽和度,V是亮度,三者相互獨立,HSB(Hue,Saturation,Brightness)顏色空間和HSL顏色空間也是臺式機桌面圖形程序語言的顏色顯示,六角錐體常被使用作為HSV顏色空間的顏色模型[34]。如圖4.4所示任何一種色彩在HSV顏色空間都可以由這三個相互獨立的屬性構(gòu)成。圖4.4HSV顏色模型eq\o\ac(○,3)Lab顏色空間Lab顏色模型是色彩模式中的一種。Lab顏色空間中能夠所表達的任何顏色,都能在自然界中找到。它的顏色空間比RGB的顏色空間大,而且它可以數(shù)字地描述人類的視覺感知,而不考慮設(shè)備。根據(jù)設(shè)備的顏色特性,Lab顏色模型填補了RGB和CMYK模式在此方面的缺點。相比于RGB和CMYK模式的顏色空間,Lab的顏色空間是更大的,這意味著在Lab的顏色空間中,在RGB和CMYK色彩模型中能夠描述的有關(guān)于顏色的信息都能夠被映射到。取坐標Lab,其中亮度表示L;紅色由a的正數(shù)表示,綠色則是負數(shù);藍色表示b的負數(shù)(a,b),黃色表示正數(shù),,從而L=116f(y)-16;a=500[f(x/0.982)-f(y)];b=200[f(y)-f(z/1.183)];其中f(x)=7.787x+0.138,x<0.008856;f(x)=(x)1/3,x>0.008856。如圖4.5所示圖4.5Lab顏色模型顏色識別進行顏色識別時,需要在HSV顏色空間,因為在RGB顏色空間各個顏色連接程度比較大,而HSV空間能夠非常直觀的表達色彩的明暗,色調(diào),以及鮮艷程度,方便進行顏色之間的對比。HSV空間中所顯示的不同顏色的范圍,如下表4.1所示:表4.1HSV顏色分量范圍黑灰白紅橙黃綠青藍紫hmin000015611263578100125hmax1801801801018025347799124155smin00043434343

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論