下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
OpenCV計(jì)算機(jī)視覺基礎(chǔ)教程(Python版)(慕課版)夏幫貴習(xí)題參考答案第1章1.答:OpenCV的特點(diǎn)及主要功能包括:內(nèi)置數(shù)據(jù)結(jié)構(gòu)和輸入/輸出、圖像處理操作、圖形用戶界面操作、視頻分析、3D重建、特征提取、對(duì)象檢測(cè)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、計(jì)算攝影、形態(tài)分析、人臉檢測(cè)、人臉識(shí)別、表面匹配、文本檢測(cè)和識(shí)別等等。2.答:OpenCV的主要模塊有core、imgproc、imgcodecs、videoio、highgui、video、calib3d、features2d、objdetect、dnn、ml、flann、photo、stitching、gapi等3.答:略。4.答:略。5.答:略。第2章1.示例代碼如下。importnumpyimportcv2img=numpy.zeros((240,320,3),dtype=numpy.uint8)img[70:170,110:210,2]=255cv2.imshow('xiti2-1',img)cv2.waitKey(0)2.示例代碼如下。importcv2img=cv2.imread('lena.jpg',cv2.IMREAD_GRAYSCALE)cv2.imshow('GRAYSCALE',img)img=cv2.imread('lena.jpg',cv2.IMREAD_REDUCED_COLOR_2) cv2.imshow('COLOR_2',img)cv2.waitKey(0)3.示例代碼如下。importcv2img=cv2.imread('lena.jpg')h,w,s=img.shapeh1=int(h/2)w1=int(w/2)img[h1-40:h1+41,w1-50:w1+51,:]=0cv2.imshow('blacksquare',img)cv2.waitKey(0)4.示例代碼如下。importcv2img=cv2.imread('lena.jpg') cv2.imshow('lena',img)b,g,r=cv2.split(img)cv2.imshow('lena_B',b)cv2.imshow('lena_G',g)cv2.imshow('lena_R',r)cv2.waitKey(0)5.示例代碼如下。importcv2importnumpysrc1=cv2.imread('lena.jpg')h,w,s=src1.shapeimg=numpy.zeros((h,w,s),dtype=numpy.uint8)h1=int(h/2)w1=int(w/2)img[h1-40:h1+41,w1-60:w1+61,:]=255img2=cv2.bitwise_and(src1,img)cv2.imshow('done',img2)cv2.waitKey(0)第3章1.示例代碼如下。importnumpyasnpimportcv2img=np.zeros((220,400,3),np.uint8)+255 #創(chuàng)建一幅白色圖像cv2.line(img,(100,20),(300,20),(255,0,0),5) #畫線,藍(lán)色cv2.line(img,(100,20),(200,193),(255,0,0),5) #畫線,藍(lán)色cv2.line(img,(200,193),(300,20),(255,0,0),5) #畫線,藍(lán)色cv2.imshow('draw',img) #顯示圖像cv2.waitKey(0)2.示例代碼如下。importnumpyasnpimportcv2img=np.zeros((200,320,3),np.uint8)+255 #創(chuàng)建一幅白色圖像x1=y1=0x2=200y2=320whilex2-10>x1+10:x1+=10y1+=10x2-=10y2-=10cv2.rectangle(img,(y1,x1),(y2,x2),(255,0,0),2) #畫矩形,藍(lán)色邊cv2.imshow('draw',img) #顯示圖像cv2.waitKey(0)3.示例代碼如下。importnumpyasnpimportcv2img=np.zeros((240,320,3),np.uint8)+255 #創(chuàng)建一幅白色圖像c=[(0,0,255),(255,255,255)]ci=0r=90foriinrange(5):cv2.circle(img,(160,120),r,c[ci%2],20)r-=20ci+=1cv2.line(img,(160,10),(160,230),(255,0,0),2) #畫線,藍(lán)色cv2.line(img,(30,120),(290,120),(255,0,0),2) #畫線,藍(lán)色font=cv2.FONT_HERSHEY_PLAINci=0x=0t='6789'foriinrange(4):cv2.putText(img,t[ci],(60+x,120),font,2,(0,0,0),1,cv2.LINE_AA) #繪制環(huán)數(shù)x+=20ci+=1ci=0x=0t='9876'foriinrange(4):cv2.putText(img,t[ci],(180+x,120),font,2,(0,0,0),1,cv2.LINE_AA) #繪制環(huán)數(shù)x+=20ci+=1cv2.imshow('draw',img) #顯示圖像cv2.waitKey(0)4.示例代碼如下。importnumpyasnpimportcv2img=np.zeros((160,320,3),np.uint8)+255 #創(chuàng)建一幅白色圖像cv2.ellipse(img,(60,50),(20,20),0,180,270,(0,0,0),5) #畫圓角cv2.line(img,(60,30),(260,30),(0,0,0),5) #畫線cv2.ellipse(img,(260,50),(20,20),0,270,360,(0,0,0),5)cv2.line(img,(280,50),(280,110),(0,0,0),5)cv2.ellipse(img,(260,110),(20,20),0,0,90,(0,0,0),5)cv2.line(img,(260,130),(60,130),(0,0,0),5)cv2.ellipse(img,(60,110),(20,20),0,90,180,(0,0,0),5)cv2.line(img,(40,110),(40,50),(0,0,0),5)cv2.imshow('draw',img) #顯示圖像cv2.waitKey(0)5.示例代碼如下。importnumpyasnpimportcv2img=np.zeros((200,320,3),np.uint8)+255 #創(chuàng)建一幅白色圖像defdraw(event,x,y,flag,param): #定義鼠標(biāo)回調(diào)函數(shù)globalimgifevent==cv2.EVENT_MOUSEMOVE: #響應(yīng)釋放鼠標(biāo)左鍵事件cv2.circle(img,(x,y),5,(0,0,0),-1) #移動(dòng)鼠標(biāo)時(shí)畫點(diǎn)elifevent==cv2.EVENT_LBUTTONDBLCLK:img=np.zeros((200,320,3),np.uint8)+255 #雙擊鼠標(biāo)左鍵時(shí)重置圖像cv2.imshow('drawing',img) #顯示圖像dWindow('drawing') #命名圖像窗口cv2.setMouseCallback('drawing',draw) #為窗口綁定回調(diào)函數(shù)cv2.imshow('drawing',img) #顯示圖像cv2.waitKey(0)第4章1.示例代碼如下。importcv2img=cv2.imread('clocktower.png') #讀取圖像cv2.imshow('original',img) #顯示圖像img2=cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #轉(zhuǎn)換色彩空間為RGBcv2.imshow('RGB',img2) #顯示圖像img2=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #轉(zhuǎn)換色彩空間為GRAYcv2.imshow('GRAY',img2) #顯示圖像img2=cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb) #轉(zhuǎn)換色彩空間為YCrCbcv2.imshow('YCrCb',img2) #顯示圖像img2=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #轉(zhuǎn)換色彩空間為HSVcv2.imshow('HSV',img2) #顯示圖像cv2.waitKey(0)2.示例代碼如下。importcv2importnumpyasnpimg=cv2.imread('clocktower.png') #讀取圖像cv2.imshow('original',img) #顯示圖像h=img.shape[0] #獲得圖像高度w=img.shape[1] #獲得圖像寬度img2=cv2.resize(img,None,fx=0.2,fy=0.2) #縮小為20%cv2.imshow('resize',img2) #顯示圖像m=cv2.getRotationMatrix2D((w/2,h/2),90,0.5) #創(chuàng)建轉(zhuǎn)換矩陣,縮小為50%,逆時(shí)針旋轉(zhuǎn)90度img2=cv2.warpAffine(img,m,(w,h)) #執(zhí)行旋轉(zhuǎn)cv2.imshow('Rotation',img2)m=np.float32([[1,0,100],[0,1,100]]) #創(chuàng)建平移轉(zhuǎn)換矩陣,x+100,y+100img2=cv2.warpAffine(img,m,(w,h)) #平移圖像cv2.imshow('offset',img2) #顯示圖像src=np.float32([[0,0],[w-10,0],[0,h-10],[w-1,w-1]]) #取原圖像中四個(gè)點(diǎn)dst=np.float32([[50,50],[w-100,80],[50,h-100],[w-100,h-10]]) #設(shè)置四點(diǎn)在目標(biāo)圖像中的坐標(biāo)m=cv2.getPerspectiveTransform(src,dst) #創(chuàng)建透視轉(zhuǎn)換矩陣img2=cv2.warpPerspective(img,m,(w,h)) #執(zhí)行轉(zhuǎn)換cv2.imshow('Perspective',img2) #顯示圖像cv2.waitKey(0)3.示例代碼如下。importcv2importnumpyasnpimg=cv2.imread('clocktower.png')#讀取圖像cv2.imshow('original',img) #顯示原圖像img2=cv2.blur(img,(20,20)) #均值濾波cv2.imshow('blur',img2)img2=cv2.GaussianBlur(img,(5,5),0,0) #高斯濾波cv2.imshow('GaussianBlur',img2)img2=cv2.boxFilter(img,-1,(3,3),normalize=False) #方框?yàn)V波cv2.imshow('boxFilter',img2)img2=cv2.medianBlur(img,21) #中值濾波cv2.imshow('medianBlur',img2)img2=cv2.bilateralFilter(img,20,100,100) #雙邊濾波cv2.imshow('bilateralFilter',img2)k1=np.array([[3,3,3,3,3],[3,9,9,9,3],[3,11,12,13,3],[3,8,8,8,3],[3,3,3,3,3],])/25 #自定義卷積核1k2=np.ones((5,5),np.float32)/25 #自定義卷積核2img2=cv2.filter2D(img,-1,k1) #2D卷積cv2.imshow('filter2DK1',img2)img2=cv2.filter2D(img,-1,k2)cv2.imshow('filter2DK2',img2)cv2.waitKey(0)4.示例代碼如下。importcv2img=cv2.imread('clocktower.png') #讀取圖像cv2.imshow('original',img) #顯示原圖像ret,img2=cv2.threshold(img,150,255,cv2.THRESH_BINARY) #二值化閾值處理cv2.imshow('BINARY',img2)ret,img2=cv2.threshold(img,150,255,cv2.THRESH_BINARY_INV) #反二值化閾值處理cv2.imshow('BINARY_INV',img2)ret,img2=cv2.threshold(img,150,255,cv2.THRESH_TRUNC) #截?cái)嚅撝堤幚韈v2.imshow('TRUNC',img2)ret,img2=cv2.threshold(img,150,255,cv2.THRESH_TOZERO) #超閾值零處理cv2.imshow('TOZERO',img2)ret,img2=cv2.threshold(img,150,255,cv2.THRESH_TOZERO_INV) #低閾值零處理cv2.imshow('TOZERO_INV',img2)img=cv2.imread('clocktower.png',cv2.IMREAD_GRAYSCALE) #讀取、轉(zhuǎn)化為單通道灰度圖像ret,img2=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU) #Ostu閾值處理cv2.imshow('OTSU',img2)ret,img2=cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV+cv2.THRESH_TRIANGLE) #三角算法閾值處理cv2.imshow('TRIANGLE',img2)img2=cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,10) #自適應(yīng)閾值處理cv2.imshow('ADAPTIVE',img2)cv2.waitKey(0)5.示例代碼如下。importcv2importnumpyasnpimg=cv2.imread('ball.png') #讀取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市地下水勘探打井合同3篇
- 二零二五年度貨車車輛購(gòu)銷及汽車租賃代理合同3篇
- 2024版焊條采購(gòu)合同
- 2024年?duì)I銷服務(wù)分包合同
- 2025年度運(yùn)動(dòng)服飾原材料采購(gòu)合同標(biāo)準(zhǔn)文本2篇
- 2025年度XX地區(qū)現(xiàn)代農(nóng)業(yè)科技示范園合作協(xié)議3篇
- 2025年度智能安防系統(tǒng)采購(gòu)合同范本9篇
- 專業(yè)汽車美容店產(chǎn)權(quán)讓渡協(xié)議樣本版B版
- 2025年度殯儀館遺體告別儀式告別儀式策劃與儀式用品定制服務(wù)合同2篇
- 2025年人工智能教育培訓(xùn)機(jī)構(gòu)合作合同范本3篇
- 八年級(jí)上冊(cè)英語完形填空、閱讀理解100題含參考答案
- 2023年安徽省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 小學(xué)數(shù)學(xué)教學(xué)3000字(優(yōu)選11篇)
- 四川水泥廠土建工程基礎(chǔ)施工方案
- 新外研版高二英語選擇性必修二Unit2重點(diǎn)單詞短語歸納復(fù)習(xí)檢測(cè)(精編課件)
- 圍棋初級(jí)死活常型
- GB/T 6481-2002鑿巖用錐體連接中空六角形釬桿
- GB/T 20988-2007信息安全技術(shù)信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范
- (最新)信息科技風(fēng)險(xiǎn)管理辦法
- 消防工程檢測(cè)設(shè)備公司市場(chǎng)營(yíng)銷方案
- 托福閱讀小班講義
評(píng)論
0/150
提交評(píng)論