模塊8 圖像的運(yùn)算《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》教學(xué)課件_第1頁
模塊8 圖像的運(yùn)算《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》教學(xué)課件_第2頁
模塊8 圖像的運(yùn)算《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》教學(xué)課件_第3頁
模塊8 圖像的運(yùn)算《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》教學(xué)課件_第4頁
模塊8 圖像的運(yùn)算《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》教學(xué)課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《計(jì)算機(jī)視覺處理項(xiàng)目實(shí)戰(zhàn)》?精品課件合集?精品課件合集第X章XXXX模塊8圖像的運(yùn)算圖像加法運(yùn)算CONTENTS目錄01圖像加法運(yùn)算圖像加法運(yùn)算加號運(yùn)算:加號運(yùn)算(+)的原理就是將兩個(gè)圖像的像素值相加,再將結(jié)果除以256取余數(shù)。

img1=[[2527213][5910176][88227210]]img2=[[13183254][521595][123132181]]img1+img2=[[9190211][111481][211103135]]圖像加法運(yùn)算add()函數(shù):add()函數(shù)運(yùn)算的原理就是將兩個(gè)圖像的像素值相加并且結(jié)果最大值只能是255。函數(shù)cv2.add()的語法格式為:result=cv2.add(a,b)img1=[[6618551][6239125][1692872]]img2=[[1811116][20277138][186174144]]

add(img1,img2)=[[84196167]

[255116255]

[255202216]]圖像加法運(yùn)算示例import

cv2a

=

cv2.imread("fruits.jpg",

0)b

=

aresultl

=

a+bresult2

=

cv2.add(a,

b)cv2.imshow("original",

a)cv2.imshow("result1",

resultl)cv2.imshow("result2",

result2)cv2.waitKey()cv2.destroyAllWindows()總結(jié)01圖像加法運(yùn)算位運(yùn)算CONTENTS目錄01圖像的按位運(yùn)算圖像的按位運(yùn)算

圖像的按位運(yùn)算就是對像素點(diǎn)值的按位運(yùn)算,按位運(yùn)算是針對二進(jìn)制數(shù)而言的,也就是說只有0和1兩個(gè)值,因此,在對圖像進(jìn)行按位運(yùn)算時(shí),需要將圖像轉(zhuǎn)化成灰度圖。在OpenCV中,提供了四種按位運(yùn)算。函數(shù)說明bitwise_and()按位與運(yùn)算(按位與是將參與運(yùn)算的兩個(gè)數(shù)各對應(yīng)的二進(jìn)位進(jìn)相與,也就是對同一位上的數(shù)字(0或1)進(jìn)行與操作。在圖像處理中,1表示白色,0表示黑色,具體算法例如:1&1=1;1&0=0;0&0=0。)bitwise_or()按位或運(yùn)算(按位或是將參與運(yùn)算的兩個(gè)數(shù)各對應(yīng)的二進(jìn)位相或,也就是對同一位上的數(shù)字(0或1)進(jìn)行或操作。具體算法例如:1|1=1;1|0=1;0|0=0。)bitwise_xor()按位異或運(yùn)算(異或操作相當(dāng)于不帶進(jìn)位的二進(jìn)制加法,二進(jìn)制下用1表示真,0表示假。具體算法例如:1^1=0;1^0=1;0^0=0。)bitwise_not()按位非運(yùn)算(非操作就是指本來值的反值)圖像的按位運(yùn)算以按位與運(yùn)算為例,語法格式如下所示。cv2.bitwise_and(src1,src2[,mask]])importcv2ascv#讀取圖片1img=cv.imread('./image/O.png')img1=cv.resize(img,(200,200))cv.imshow('img1',img1)#讀取圖片2img2=cv.imread('./image/timg.png')img3=cv.resize(img2,(200,200))cv.imshow('img2',img3)#邏輯與運(yùn)算img4=cv.bitwise_and(img1,img3)cv.imshow('and',img4)#邏輯或運(yùn)算img5=cv.bitwise_or(img1,img3)cv.imshow('or',img5)總結(jié)01圖像的按位運(yùn)算圖像加權(quán)和運(yùn)算CONTENTS目錄01圖像加權(quán)和運(yùn)算圖像加權(quán)和運(yùn)算所謂圖像加權(quán)和,就是在計(jì)算兩幅圖像的像素值之和時(shí),將每幅圖像的權(quán)重考慮進(jìn)來。OpenCV中提供了函數(shù)cv2.addWeighted(),用來實(shí)現(xiàn)圖像的加權(quán)和(混合、融合),該函數(shù)的語法格式為:dst=cv2.addWeighted(src1,alpha,src2,beta,gamma)其中,參數(shù)alpha和beta是src1和src2所對應(yīng)的系數(shù),它們的和可以等于1,也可以不等于1。該函數(shù)實(shí)現(xiàn)的功能是dst=src1*alpha+src2*beta+gamma。需要注意,式中參數(shù)gamma的值可以是0,但是該參數(shù)是必選參數(shù),不能省略??梢詫⑸鲜嚼斫鉃椤敖Y(jié)果圖像=圖像1*系數(shù)1+圖像2*系數(shù)2+亮度調(diào)節(jié)”。加權(quán)和運(yùn)算示例importcv2ascv#讀取圖片1img=cv.imread('./image/a.jpg')img1=cv.resize(img,(200,200))cv.imshow('img1',img1)#讀取圖片2img2=cv.imread('./image/b.jpg')img3=cv.resize(img2,(200,200))cv.imshow('img3',img3)

#對圖像加權(quán)相加img4=cv.addWeighted(img1,0.6,img3,0.4,0)cv.imshow('addweighted',img4)cv.waitKey(0)cv.destroyAllWindows()總結(jié)01圖像加權(quán)和運(yùn)算圖像加密與解密CONTENTS目錄01圖像加密與解密圖像加密與解密圖像的加密就是創(chuàng)建一個(gè)密匙圖像,并將要加密的圖像與密匙圖像進(jìn)行按位異或操作。圖像的解密就是將這個(gè)過程反過來。圖像加密與解密示例importcv2importnumpyasnprose=cv2.imread("rose.jpg",0)r,c=rose.shapekey=np.random.randint(0,256,size=[r,c],dtype=np.uint8)encryption=cv2.bitwise_xor(rose,key)decryption=cv2.bitwise_xor(encryption,key)cv2.imshow("rose",rose)cv2.imshow("key",key)cv2.imshow("encryption",encryption)cv2.imshow("decryption",decryption)cv2.waitKey()cv2.destroyAllWindows()總結(jié)01圖像加密與解密數(shù)字水印的嵌入和提取CONTENTS目錄01數(shù)字水印的嵌入和提取數(shù)字水印的嵌入和提取示例importcv2importnumpyasnpRaccoon=cv2.imread("Raccoon.png",0)watermark=cv2.imread("opencv.png",0)w=watermark[:,:]>0watermark[w]=1r,c=Raccoon.shapet254=np.ones((r,c),dtype=np.uint8)*254RaccoonH7=cv2.bitwise_and(Raccoon,t254)e=cv2.bitwise_or(RaccoonH7,watermark)cv2.imshow("Raccoon",Raccoon)cv2.imshow("watermark",watermark*255)cv2.imshow("e",e)cv2.waitKey()cv2.destroyAllWindows()數(shù)字水印的嵌入和提取示例importcv2importnumpyasnpe=cv2.imread("e.png",0)r,c=e.shapet1=np.ones((r,c),dtype=np.uint8)wm=cv2.bitwise_and(e,t1)w=wm[:,:]>0wm[w]=255cv2.imshow("e",e)cv2.imshow("wm",wm)cv2.waitKey()cv2.destroyAllWindows()總結(jié)01數(shù)字水印的嵌入和提取獲取圖像局部區(qū)域CONTENTS目錄01獲取圖像局部區(qū)域獲取圖像局部區(qū)域在圖像處理過程中,我們可能會(huì)對圖像的某一個(gè)特定區(qū)域感興趣,該區(qū)域被稱為感興趣區(qū)域。我們將感興趣的區(qū)域放大,提取圖像重點(diǎn)信息。圖像的局部區(qū)域打碼在圖像處理過程中,我們可能需要對圖像的某一個(gè)特定區(qū)域打碼。使用掩碼和按位運(yùn)算,實(shí)現(xiàn)對圖像關(guān)鍵區(qū)域的打碼。圖像的局部區(qū)域打碼示例import

cv2import

numpy

as

nppanda

=

cv2.imread("panda.jpg",

0)r,

c

=

panda.shapemask

=

np.zeros((r,

c),

dtype=np.uint8)mask[220:400,

500:700]

=

1noFace

=

cv2.bitwise_and(panda,

(1-mask)*255

溫馨提示

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

最新文檔

評論

0/150

提交評論