日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

5 用python进行OpenCV实战之图像变换2(旋转)

發布時間:2023/11/28 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5 用python进行OpenCV实战之图像变换2(旋转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近有些其他事情,一周未更新了,實在抱歉。以后爭取,每周多更新幾次。雖然也不知道能有多少人看到,但是也算自己的一種堅持吧!

1 旋轉

1.1 旋轉基本操作

旋轉的概念正如我們平常聽見的一樣:將圖片選裝x度。我們先通過多少度來旋轉圖片,然后我們將寫一個旋轉函數。

import numpy as np #1
import argparse #2
import imutils #3
import cv2 #4ap = argparse.ArgumentParser() #5
ap.add_argument("-i", "--image", required = True,help = "Path to the image") #6
args = vars(ap.parse_args()) #7image = cv2.imread(args["image"]) #8
cv2.imshow("Original", image) #9(h, w) = image.shape[:2] #10
center = (w // 2, h // 2) #11M = cv2.getRotationMatrix2D(center, 45, 1.0) #12
rotated = cv2.warpAffine(image, M, (w, h)) #13
cv2.imshow("Rotated by 45 Degrees", rotated) #14M = cv2.getRotationMatrix2D(center, -90, 1.0) #15
rotated = cv2.warpAffine(image, M, (w, h)) #16
cv2.imshow("Rotated by -90 Degrees", rotated) #17rotated = imutils.rotate(image, 180) #18
cv2.imshow("Rotated by 180 Degrees", rotated) #19
cv2.waitKey(0) #20

#1-9:
與前幾節一樣的操作,進行導包,然后顯示原始圖片,但是需要注意的是在第三行 import imutils,還記得它是什么嗎?我們在上一節還詳細介紹過啊。忘記了,可以返回上一節看看。

#10-11:
在第10行中我們得到了圖像的寬和高,然后我們通過”//”將它們除以2取整來得到旋轉的中心。當然我們也可以不以中心為旋轉中心,這里為了方便。

#12:
正如我們定義一個矩陣來移動圖像一樣,我們還需要定義一個矩陣來旋轉圖像,然而不同的是我們不是通過NumPy來構造矩陣的,而是通過:

cv2.getRotationMatrix2D()

第一個參數:表示向以哪一點進行旋轉?這里就是圖像的中心
第二個參數:表示我們希望旋轉的角度。這里為正45度,表示順時針旋轉45度
第三個參數:表示圖像旋轉后的大小,這里設為1表示大小與原圖大小一致

#13-14:
通過cv2.warpAffine()方法,我們便可進行旋轉圖像的操作,第一個參數為原圖,第二個參數為旋轉矩陣,第三個參數為圖像(寬,高)的元組,然后將旋轉后的圖像顯示出來

#15-17:
采用同樣的方法將圖像逆時針旋轉90度,然后展示出來

#18-20:
在第18行我們使用了:imutils這個自己寫的庫,然后調用了rotate()方法。第一個參數是需要操作的圖像,第二個參數是要旋轉的度數。

1.2 自寫的函數庫

在imutils.py中我們自定義rotate函數

def rotate(image, angle, center=None, scale=1.0): #1(h, w) = image.shape[:2] #2if center is None: #3center = (w // 2, h // 2) #4M = cv2.getRotationMatrix2D(center, angle, scale) #5rotated = cv2.warpAffine(image, M, (w, h)) #6return rotated #7

#1-4:
我們的旋轉方法又四個參數,第一個是圖像,第二個是我們所希望旋轉的角度,我們還提供了兩個可選擇的變量:中心點和規模。中心點是我們希望我們的圖像圍繞哪一點旋轉?如果,沒有給它賦值,我們會默認將圖像的中心點賦值給它。規模大小我們默認為1.0,表示沒有任何大小的變化。

#5-7:
通過構造我們的旋轉矩陣,然后我們將旋轉后的結果返回。

2 效果展示


轉載請注明出處:
CSDN:樓上小宇__home:http://blog.csdn.net/sty945
簡書:樓上小宇:http://www.jianshu.com/u/1621b29625df

總結

以上是生活随笔為你收集整理的5 用python进行OpenCV实战之图像变换2(旋转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。