OpenCV圖像處理教程錢銀中課后答案_第1頁(yè)
OpenCV圖像處理教程錢銀中課后答案_第2頁(yè)
OpenCV圖像處理教程錢銀中課后答案_第3頁(yè)
OpenCV圖像處理教程錢銀中課后答案_第4頁(yè)
OpenCV圖像處理教程錢銀中課后答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單元1參考答案1.B2.A3..D4.C5.B6.A7.B8.D9.C10.B11.A12.B13.D14.C15.D16.D17.B18.C單元2參考答案習(xí)題參考答案:一.選擇題1.C2.A3.B4.D5.C6.B7.D8.C9.B10.C11.A12.B13.C14.C15.C16.A17.B18.C19.D20.A

21.D22.B23.D24.A25.編寫程序,讀取一個(gè)彩色圖像,分別提取并顯示其中的R,G,B灰度圖像;importcv2img=cv2.imread('dog.jpg')cv2.imshow("Color",img)cv2.imshow("0",img[:,:,0])cv2.imshow("1",img[:,:,1])cv2.imshow("2",img[:,:,2])cv2.waitKey(0)26. 編寫程序,讀取一個(gè)彩色圖像,分別轉(zhuǎn)換為灰度圖像、HSV圖像和L*a*b*圖像,顯示轉(zhuǎn)化后的目標(biāo)圖像;importcv2img=cv2.imread('flower.png')cv2.imshow("Flower",img)hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)cv2.imshow("hsv0",hsv[:,:,0])cv2.imshow("hsv1",hsv[:,:,1])cv2.imshow("hsv0",hsv[:,:,2])lab=cv2.cvtColor(img,cv2.COLOR_BGR2LAB)cv2.imshow("lab0",lab[:,:,0])cv2.imshow("lab1",lab[:,:,1])cv2.imshow("lab0",lab[:,:,2])cv2.waitKey(0)27. 編寫程序,讀取一個(gè)圖像,查看這個(gè)圖像中矩陣元素測(cè)數(shù)據(jù)類型,這個(gè)圖像的寬度和高度;importcv2im=cv2.imread("flower.png")print(im.dtype)print(im.shape)28. 編寫程序,使用手機(jī)拍攝一個(gè)自己個(gè)人的圖像,從圖像中截取人臉窗口圖像。importcv2img=cv2.imread('me.jpg')cv2.imshow("0",img)img1=img[a:b,c:d,:]#a,b,c,d根據(jù)人臉位置確定cv2.imshow("1",img1)cv2.imwrite("a.jpg",img1)單元3參考答案1.D2.C3.D4.A5.B6.C7.A8.B9.A10.A11.B12.D13.C14.A15.B16.D17.編寫程序,讀取一個(gè)圖像,在圖像的最中間畫一條垂直線。importcv2img=cv2.imread("imgs/bike.jpg")h,w,_=img.shapecv2.line(img,(w//2,0),(w//2,h),(255,255,255),2)cv2.imshow("0",img)cv2.waitKey(0)cv2.destroyAllWindows()18.編寫程序,讀取一幅圖像,在圖像最中間畫一個(gè)半徑100的圓。importcv2img=cv2.imread("imgs/bike.jpg")h,w,_=img.shapecv2.circle(img,(w//2,h//2),100,(0,0,255),2)cv2.imshow("0",img)cv2.waitKey(0)cv2.destroyAllWindows()19.編寫程序,在黑色背景上畫一個(gè)白色實(shí)心橢圓。importcv2importnumpyasnpimg=np.zeros((300,600,3),dtype="uint8")cv2.ellipse(img,(300,150),(100,50),0,0,360,(255,255,255),-1)cv2.imshow("0",img)cv2.waitKey(0)cv2.destroyAllWindows()20.編寫程序,在圖像中間位置,用斜體字書寫“Python!”importcv2img=cv2.imread("imgs/bike.jpg")h,w,_=img.shapecv2.putText(img,'Python!',(w//2-100,h//2-30),cv2.FONT_ITALIC,1.5,(255,0,0))cv2.imshow("0",img)cv2.waitKey(0)cv2.destroyAllWindows()單元4參考答案1.B2.A3.D4.C5.A6.C7.B8.D9.B10.A11.D12.D13.B14.C15.B16.A17.C18.D19.D20.B21.A22.讀取一個(gè)圖像,寬度方向放大1.8倍、高度方向放大1.5倍,顯示縮放后的圖像。importcv2img=cv2.imread("imgs/cameraman.jpg")cv2.imshow("0",img)img1=cv2.resize(img,(100,150))cv2.imshow("1",img1)img2=cv2.resize(img,None,fx=1.8,fy=1.5)cv2.imshow('img2',img2)cv2.waitKey(0)cv2.destroyAllWindows()23.讀取一個(gè)圖像,向上平移50,向右平移80,顯示平移后的圖像。importnumpyasnpimportcv2img=cv2.imread("imgs/lena.png")cv2.imshow("0",img)M=np.float32([[1,0,50],[0,1,80]])#仿射變換矩陣s=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))cv2.imshow("1",s)s=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]),borderMode=cv2.BORDER_REPLICATE)cv2.imshow("2",s)cv2.waitKey(0)cv2.destroyAllWindows()24.讀取一個(gè)圖像,圍繞圖像左上角沿逆時(shí)針?lè)较蛐D(zhuǎn)20°,顯示旋轉(zhuǎn)后的圖像。importcv2image=cv2.imread("imgs/lena.png")cv2.imshow("0",image)(h,w)=image.shape[:2]center=(0,0)M=cv2.getRotationMatrix2D(center,20,1)r=cv2.warpAffine(image,M,(w,h))cv2.imshow("1",r)cv2.waitKey(0)25.讀取一個(gè)圖像,顯示10個(gè)在-15°-15°隨機(jī)旋轉(zhuǎn)的圖像。importcv2importmatplotlib.pyplotaspltimage=cv2.imread("imgs/lena.png",cv2.IMREAD_GRAYSCALE)cv2.imshow("0",image)(h,w)=image.shape[:2]center=(w//2,h//2)plt.figure(figsize=(12,4))j=1foriinrange(-15,16,10):M=cv2.getRotationMatrix2D(center,i,1)r=cv2.warpAffine(image,M,(w,h))plt.subplot(2,4,j)j=j+1plt.xticks([]),plt.yticks([])plt.imshow(r)plt.show()26.讀取一個(gè)圖像,執(zhí)行仿射變換。importnumpyasnpimportcv2img=cv2.imread("imgs/swan.jpg")cv2.imshow("0",img)src=np.float32([[0,0],[0,110],[120,0]])dst=np.float32([[0,0],[10,80],[90,20]])M=cv2.getAffineTransform(src,dst,)img1=cv2.warpAffine(img,M,(img.shape[1],img.shape[0]))cv2.imshow("1",img1)cv2.waitKey()cv2.destroyAllWindows()27讀取一個(gè)圖像,執(zhí)行透視變換。importnumpyasnpimportcv2image=cv2.imread("imgs/road.jpeg")cv2.imshow("0",image)(h,w)=image.shape[:2]src=np.float32([[0,0],[368,395],[209,218],[336,230]])dst=np.float32([[50,395],[368,395],[50,230],[336,230]])M=cv2.getPerspectiveTransform(src,dst)w=cv2.warpPerspective(image,M,(w,h))cv2.imshow("1",w)cv2.waitKey(0)單元5參考答案1.A2.D3.C4.B5.C6.A7.B8.B9.A10.D11.B12.A13.C14.D15.A16.C17.A18.D19.C20.編寫程序,讀取一個(gè)彩色圖像,分別用3X3,5X5,7X7大小的核執(zhí)行均值平滑。importcv2img=cv2.imread("a.jpg")img1=cv2.blur(img,(3,3))img2=cv2.blur(img,(5,5))img3=cv2.blur(img,(7,7))cv2.imshow("0",img)cv2.imshow("1",img1)cv2.imshow("2",img2)cv2.imshow("3",img3)cv2.waitKey()cv2.destroyAllWindows()21.編寫程序,讀取一個(gè)彩色圖像,分別用3X3,9X9,15X15大小的核執(zhí)行高斯平滑。importcv2img=cv2.imread("a.jpg")img1=cv2.GaussianBlur(img,(3,3),0)img2=cv2.GaussianBlur(img,(9,9),0)img3=cv2.GaussianBlur(img,(15,15),0)cv2.imshow("0",img)cv2.imshow("1",img1)cv2.imshow("2",img2)cv2.imshow("3",img3)cv2.waitKey()cv2.destroyAllWindows()22.編寫程序,讀取一個(gè)彩色圖像,分別用3X3,5X5,7X7大小的核執(zhí)行中值平滑。importcv2img=cv2.imread("a.jpg")img1=cv2.medianBlur(img,3)img2=cv2.medianBlur(img,5)img3=cv2.medianBlur(img,7)cv2.imshow("0",img)cv2.imshow("1",img1)cv2.imshow("2",img2)cv2.imshow("3",img3)cv2.waitKey()cv2.destroyAllWindows()23.編寫程序,定義一個(gè)5X5均值核,使用二維卷積,對(duì)輸入圖像執(zhí)行均值平滑。importcv2importnumpyasnpimg=cv2.imread("a.jpg")k=np.ones((5,5),np.float32)/25img2=cv2.filter2D(img,-1,k)cv2.imshow("2",img2)cv2.waitKey()cv2.destroyAllWindows()24.編寫程序,定義一個(gè)差分核,對(duì)輸入圖像執(zhí)行差分濾波,提取圖像中的垂直邊緣。importcv2importnumpyasnpimg=cv2.imread("imgs/lena.png",cv2.IMREAD_GRAYSCALE)k1=np.array([(1,0,-1),(1,0,-1),(1,0,-1)],np.float32)img1=cv2.filter2D(img,-1,k1)cv2.imshow("0",img)cv2.imshow("1",img1)cv2.waitKey()cv2.destroyAllWindows()單元6參考答案1.C2.A3.A4.D5.C6.D7.B8.A9.C10.D11.B12.D13.C14.A15.C16.C17.B18.A19. 編寫程序,讀取一個(gè)灰度圖像,使用Sobel算子檢測(cè)邊緣,顯示兩個(gè)方向以及合并以后的檢測(cè)結(jié)果.importcv2importnumpyasnpimg=cv2.imread("a.png",cv2.IMREAD_GRAYSCALE)cv2.imshow("Image",img)sx=cv2.Sobel(img,cv2.CV_64F,1,0)sy=cv2.Sobel(img,cv2.CV_64F,0,1)sx=np.uint8(np.absolute(sx))sy=np.uint8(np.absolute(sy))s=cv2.bitwise_or(sx,sy)cv2.imshow("x",sx)cv2.imshow("y",sy)cv2.imshow("s",s)cv2.waitKey(0)20. 編寫程序,在灰度值相等的畫布圖像上繪制一條水平線和垂直線,分別用兩種Sobel算子檢測(cè)邊緣,顯示兩個(gè)方向以及合并以后的檢測(cè)結(jié)果.importcv2importnumpyasnpimg=np.zeros((512,512,3),np.uint8)cv2.line(img,(0,200),(511,200),(255,255,255),20)cv2.line(img,(200,0),(200,511),(255,255,255),20)cv2.imshow("Image",img)sx=cv2.Sobel(img,cv2.CV_64F,1,0)sy=cv2.Sobel(img,cv2.CV_64F,0,1)sx=np.uint8(np.absolute(sx))sy=np.uint8(np.absolute(sy))s=cv2.bitwise_or(sx,sy)#通過(guò)位或運(yùn)算合并兩個(gè)方向的檢測(cè)結(jié)果cv2.imshow("x",sx)cv2.imshow("y",sy)cv2.imshow("s",s)cv2.waitKey(0)

21. 編寫程序,在灰度值相等的畫布圖像上繪制一個(gè)圓,分別用兩種Sobel算子檢測(cè)邊緣,顯示兩個(gè)方向以及合并以后的檢測(cè)結(jié)果.importcv2importnumpyasnpimg=np.zeros((512,512,3),np.uint8)cv2.circle(img,(256,256),100,(255,255,255),10)cv2.imshow("Image",img)sx=cv2.Sobel(img,cv2.CV_64F,1,0)sy=cv2.Sobel(img,cv2.CV_64F,0,1)sx=np.uint8(np.absolute(sx))sy=np.uint8(np.absolute(sy))s=cv2.bitwise_or(sx,sy)

cv2.imshow("x",sx)cv2.imshow("y",sy)cv2.imshow("s",s)cv2.waitKey(0)22. 編寫程序,讀取一個(gè)灰度圖像,使用Scharr算子檢測(cè)邊緣,顯示兩個(gè)方向以及合并以后的檢測(cè)結(jié)果.importcv2importnumpyasnpimg=cv2.imread("imgs/lena.png")sx=cv2.Scharr(img,cv2.CV_64F,1,0)sy=cv2.Scharr(img,cv2.CV_64F,0,1)sx=np.uint8(np.absolute(sx))sy=np.uint8(np.absolute(sy))s=cv2.bitwise_or(sx,sy)cv2.imshow("x",sx)cv2.imshow("y",sy)cv2.imshow("s",s)cv2.waitKey(0)23. 編寫程序,在灰度值相等的畫布圖像上繪制一個(gè)圓,分別用兩種Scharr算子檢測(cè)邊緣,顯示兩個(gè)方向以及合并以后的檢測(cè)結(jié)果.importcv2importnumpyasnpimg=np.zeros((512,512,3),np.uint8)cv2.circle(img,(256,256),100,(255,255,255),10)cv2.imshow("Image",img)sx=cv2.Scharr(img,cv2.CV_64F,1,0)sy=cv2.Scharr(img,cv2.CV_64F,0,1)sx=np.uint8(np.absolute(sx))sy=np.uint8(np.absolute(sy))s=cv2.bitwise_or(sx,sy)

cv2.imshow("x",sx)cv2.imshow("y",sy)cv2.imshow("s",s)cv2.waitKey(0)24. 編寫程序,在灰度值相等的畫布圖像上繪制一條水平線和垂直線,用Laplacian算子檢測(cè)邊緣.importcv2importnumpyasnpimg=np.zeros((512,512,3),np.uint8)cv2.line(img,(0,200),(511,200),(255,255,255),20)cv2.line(img,(200,0),(200,511),(255,255,255),20)cv2.imshow("Image",img)s=cv2.Laplacian(img,cv2.CV_64F)cv2.imshow("s",s)cv2.waitKey(0)25. 編寫程序,對(duì)有噪聲的圖像執(zhí)行高斯平滑,然后用Canny算子檢測(cè)邊緣.#Example6_9importcv2image=cv2.imread("imgs/cat.jpg")gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)cv2.imshow("Original",image)gray=cv2.GaussianBlur(gray,(5,5),0)cv2.imshow("Blurred",gray)can=cv2.Canny(gray,100,200)cv2.imshow("Canny",can)cv2.waitKey(0)cv2.imwrite("imgs/output/cat2.jpg",can)cv2.destroyAllWindows()單元7參考答案1.B2.D3.C4.B5.A6.B7.D8.A9.C10.D11.B12.C13.A14.B15.A16.D17.C18.B19.D20.A21. 讀取一個(gè)二值圖像,分別用3X3,5X5,7X7的橢圓結(jié)構(gòu)元執(zhí)行腐蝕處理。importcv2s=[(3,3),(5,5),(7,7)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):

e=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,s[i])

img2=cv2.morphologyEx(img,cv2.MORPH_ERODE,e)

cv2.imshow(str(i+1),img2)cv2.waitKey(0)cv2.destroyAllWindows()22. 讀取一個(gè)灰度圖像,分別用3X3,5X5,7X7的橢圓結(jié)構(gòu)元執(zhí)行膨脹處理。importcv2s=[(3,3),(5,5),(7,7)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):e=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,s[i])img2=cv2.morphologyEx(img,cv2.MORPH_DILATE,e)cv2.imshow(str(i+1),img2)cv2.waitKey(0)cv2.destroyAllWindows()23. 讀取一個(gè)二值圖像,分別用3X3,9X9,13X13的十字型結(jié)構(gòu)元執(zhí)行開運(yùn)算處理。importcv2s=[(3,3),(9,9),(13,13)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):

e=cv2.getStructuringElement(cv2.MORPH_CROSS,s[i])

img2=cv2.morphologyEx(img,cv2.MORPH_OPEN,e)

cv2.imshow(str(i+1),img2)cv2.waitKey(0)cv2.destroyAllWindows()24. 讀取一個(gè)灰度圖像,分別用3X3,9X9,13X13的十字型結(jié)構(gòu)元執(zhí)行閉運(yùn)算處理。importcv2s=[(3,3),(9,9),(13,13)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):e=cv2.getStructuringElement(cv2.MORPH_CROSS,s[i])img2=cv2.morphologyEx(img,cv2.MORPH_CLOSE,e)cv2.imshow(str(i+1),img2)cv2.waitKey(0)cv2.destroyAllWindows()25. 讀取一個(gè)有白色物體的二值圖像,分別用3X3,5X5,7X11的矩形結(jié)構(gòu)形態(tài)學(xué)梯度處理。importcv2s=[(3,3),(5,5),(7,11)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):

e=cv2.getStructuringElement(cv2.MORPH_RECT,s[i])

img2=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,e)

cv2.imshow(str(i+1),img2)cv2.waitKey(0)cv2.destroyAllWindows()26. 讀取一個(gè)灰度圖像,分別用3X3,5X5,7X9的矩形結(jié)構(gòu)頂帽運(yùn)算處理。importcv2s=[(3,3),(5,5),(7,9)]img=cv2.imread("imgs/m.jpg",cv2.IMREAD_GRAYSCALE)cv2.imshow("Input",img)foriinrange(len(s)):e=cv2.get

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論