幾何變換之仿射---OpenCV-Python開發(fā)指南(12)

仿射

在OpenCV中畦娄,仿射變換是指圖像經(jīng)過一系列的幾何變換來實(shí)現(xiàn)的平移,旋轉(zhuǎn)等多種操作弊仪。該變換能夠保持圖像的平直性與平行性熙卡。平直性是指圖像經(jīng)過仿射變換后,直線仍然是直線励饵;平行性是指圖像在完成仿射變換后驳癌,平行性依然是平行線。

在OpenCV中役听,它給我們提供的仿射函數(shù)為cv2.warpAffine()颓鲜,其通過一個變換矩陣M實(shí)現(xiàn),對于矩陣運(yùn)算不大了解的典予,可以記住后面講解的甜滨,也可以學(xué)習(xí)離散數(shù)學(xué)或線性代數(shù),兩者都講解到了矩陣運(yùn)算瘤袖。

仿射函數(shù)的定義如下:

def warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None):

src:代表要仿射的原始圖像

M:代表一個2*3的變換矩陣衣摩,使用不同的變換矩陣,就可以實(shí)現(xiàn)不同的仿射變換捂敌。

dszie:代表輸出圖像的尺寸大小艾扮。

dst:代表仿射后的輸出圖像

flags:代表插值方法既琴,默認(rèn)為INTER_LINEAR。當(dāng)該值為WARP_INVERSE_MAP時栏渺,意味著M是逆變換類型,實(shí)現(xiàn)從目標(biāo)圖像dst到原始圖像src的逆變換锐涯。詳細(xì)參數(shù)磕诊,上篇博文表格就是。

borderMode:代表邊類型纹腌,默認(rèn)為BORDER_CONSTANT霎终。當(dāng)該值為BORDER_TRANSPARENT時,意味著目標(biāo)圖像內(nèi)的值不做改變升薯,這些值對應(yīng)原始圖像內(nèi)的異常值莱褒。

borderValue:代表邊界值,默認(rèn)是0涎劈。

綜上所示广凸,我們常用的參數(shù)為:src,M,dsize。

平移

已知仿射公式為:

仿射公式

假設(shè)我們現(xiàn)在要將圖像向右平移50個像素蛛枚,向下平移100個像素谅海,那么公式替換后如下所示:

dst(x,y)=src(x+50,y+100)

dst(x,y)=src(1x,+0y+50,0x+1y+100)

得到M中的各個元素值為:

M11=1

M12=0

M13=50

M21=0

M22=1

M23=100

綜上所述,右平移50個像素蹦浦,向下平移100個像素的變換矩陣為:

20170503083900427.png

已知變換矩陣與原始圖像扭吁,那么很簡單的我們就可以完成圖像的平移操作,具體代碼如下所示:

import cv2
import numpy as np

img = cv2.imread("4.jpg")
h, w = img.shape[:2]
x = 50
y = 100
M = np.float32([[1, 0, x], [0, 1, y]])
move_img = cv2.warpAffine(img, M, (w, h))
cv2.imshow("img", img)
cv2.imshow("move_img", move_img)
cv2.waitKey()
cv2.destroyAllWindows()

運(yùn)行之后盲镶,效果如下所示:


3.png

旋轉(zhuǎn)

在使用函數(shù)cv2.warpAffine()對圖像進(jìn)行旋轉(zhuǎn)時侥袜,可以通過函數(shù)cv2.getRotationMatrix2D()獲取轉(zhuǎn)換矩陣。該函數(shù)的語法格式為:

def getRotationMatrix2D(center, angle, scale):

center:為旋轉(zhuǎn)的中心

angle:為旋轉(zhuǎn)的角度溉贿,正數(shù)表示逆時針旋轉(zhuǎn)枫吧,負(fù)數(shù)表示順時針旋轉(zhuǎn)

scale:為變換尺寸(也就是前文說的縮放大小)

下面宇色,我們來將上圖在旋轉(zhuǎn)45度由蘑,具體代碼如下所示:

import cv2

img = cv2.imread("4.jpg")
h, w = img.shape[:2]
M = cv2.getRotationMatrix2D((w / 2, h / 2), 45, 0.6)
move_img = cv2.warpAffine(img, M, (w, h))
cv2.imshow("img", img)
cv2.imshow("move_img", move_img)
cv2.waitKey()
cv2.destroyAllWindows()

更改M變換矩陣就行,這里(w / 2, h / 2)為圖像的中心坐標(biāo)代兵,45為正數(shù)尼酿,就是逆時針旋轉(zhuǎn)45度,0.6就是將圖像縮放0.6倍植影。

運(yùn)行之后裳擎,效果如下所示:

4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市思币,隨后出現(xiàn)的幾起案子鹿响,更是在濱河造成了極大的恐慌羡微,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惶我,死亡現(xiàn)場離奇詭異妈倔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绸贡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門盯蝴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人听怕,你說我怎么就攤上這事捧挺。” “怎么了尿瞭?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵闽烙,是天一觀的道長。 經(jīng)常有香客問我声搁,道長黑竞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任疏旨,我火速辦了婚禮摊溶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘充石。我一直安慰自己莫换,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布骤铃。 她就那樣靜靜地躺著拉岁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惰爬。 梳的紋絲不亂的頭發(fā)上喊暖,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天,我揣著相機(jī)與錄音撕瞧,去河邊找鬼陵叽。 笑死,一個胖子當(dāng)著我的面吹牛丛版,可吹牛的內(nèi)容都是我干的巩掺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼页畦,長吁一口氣:“原來是場噩夢啊……” “哼滥比!你這毒婦竟也來了华弓?” 一聲冷哼從身側(cè)響起屈张,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎官套,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年冲呢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片招狸。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡敬拓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瓢颅,到底是詐尸還是另有隱情恩尾,我是刑警寧澤弛说,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布挽懦,位于F島的核電站,受9級特大地震影響木人,放射性物質(zhì)發(fā)生泄漏信柿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一醒第、第九天 我趴在偏房一處隱蔽的房頂上張望渔嚷。 院中可真熱鬧,春花似錦稠曼、人聲如沸形病。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漠吻。三九已至,卻和暖如春司恳,著一層夾襖步出監(jiān)牢的瞬間途乃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工扔傅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耍共,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓猎塞,卻偏偏與公主長得像试读,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荠耽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容