基于Python的Opencv入門教程(P4.讓我們旋轉(zhuǎn)我們的圖片)
書接上文(doge)

旋轉(zhuǎn)圖像
讓我們旋轉(zhuǎn)圖像,以獲得下一個(gè)示例:
圍繞中心點(diǎn)旋轉(zhuǎn)圖像需要首先計(jì)算圖像的中心(x,y)-坐標(biāo)(第50行)。
注意:我們使用//執(zhí)行整數(shù)數(shù)學(xué)(即,沒有浮點(diǎn)值)。
從這里我們計(jì)算旋轉(zhuǎn)矩陣M(第43行)。45表示我們將圖像順時(shí)針旋轉(zhuǎn)45度。回想一下中學(xué)/高中幾何課上關(guān)于單位圓的內(nèi)容,你可以提醒自己,正角度是逆時(shí)針方向,負(fù)角度是順時(shí)針方向。
從那里,我們使用第44行的矩陣扭曲圖像(有效地旋轉(zhuǎn)它)。
旋轉(zhuǎn)后的圖像顯示在第44行的屏幕上,如下圖所示:

現(xiàn)在,讓我們使用imutils在一行代碼中執(zhí)行相同的操作:
由于我不必像調(diào)整大小那樣旋轉(zhuǎn)圖像(相對(duì)而言),我發(fā)現(xiàn)旋轉(zhuǎn)過程更難記住。因此,我在imutils中創(chuàng)建了一個(gè)函數(shù)來為我們處理它。在一行代碼中,我可以將圖像順時(shí)針旋轉(zhuǎn)45度(第49行),如下圖所示:

此時(shí),你必須思考:
“究竟為什么要剪掉這張照片?”
答案是因?yàn)镺penCV不在乎旋轉(zhuǎn)后我們的圖像是否被剪掉或看不見。我覺得這很麻煩,所以這里是我的imutils版本,它將保持整個(gè)圖像在視圖中。我稱之為旋轉(zhuǎn)約束:
這里因?yàn)閳D片大小過于大,所以將圖片進(jìn)行了縮小。(指第54行的代碼)
這個(gè)算法的幕后有很多事情。如果您對(duì)第54行的方法的工作方式感興趣,請(qǐng)務(wù)必查看以下博網(wǎng)址。
https://www.pyimagesearch.com/2017/01/02/rotate-images-correctly-with-opencv-and-python/?_ga=2.102176713.919642978.1642226886-1706104520.1639213599
(次文章還未翻譯)
結(jié)果如下圖所示:

https://pyimagesearch.com/2017/01/02/rotate-images-correctly-with-opencv-and-python/?_ga=2.262150340.919642978.1642226886-1706104520.1639213599
完美!整個(gè)圖像位于框架中,并正確地順時(shí)針旋轉(zhuǎn)45度了!
虛化一張圖片
在許多圖像處理管道中,我們必須模糊圖像以減少雜訊,使我們的算法更容易檢測(cè)和理解圖像的實(shí)際內(nèi)容,而不僅僅是會(huì)“混淆”我們的算法的訊息。在OpenCV中,模糊圖像非常容易,有多種方法可以實(shí)現(xiàn)。

我經(jīng)常使用Gaussian模糊函數(shù)(高斯模糊函數(shù)):
在第70行,我們使用21 x 21內(nèi)核執(zhí)行高斯模糊,其結(jié)果如圖上所示。
更大的核會(huì)產(chǎn)生更模糊的圖像。較小的內(nèi)核將創(chuàng)建較少模糊的圖像。要了解更多關(guān)于內(nèi)核的信息,請(qǐng)參閱本文或PyImageSearch專家課程。
另外,“內(nèi)核”的數(shù)值一定要是基數(shù)呦~
那么,今天就寫到這里了,拜拜。
話說下一次就可以再圖上畫畫了呢!(十分小聲)