婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python opencv旋轉圖片的使用方法

python opencv旋轉圖片的使用方法

熱門標簽:市場上的電銷機器人 佛山400電話辦理 北瀚ai電銷機器人官網手機版 所得系統電梯怎樣主板設置外呼 小蘇云呼電話機器人 朝陽手機外呼系統 北京電銷外呼系統加盟 儋州電話機器人 地圖標注面積

背景

在圖像處理中,有的時候會有對圖片進行角度旋轉的處理,尤其是在計算機視覺中對于圖像擴充,旋轉角度擴充圖片是一種常見的處理。這種旋轉圖片的應用場景也比較多,比如用戶上傳圖片是豎著的時候,不好進行處理,也需要對其進行旋轉,以便后續算法處理。常見的旋轉處理有兩種方式,一種是轉化為numpy矩陣后,對numpy矩陣進行處理,另外一種是使用opencv自帶的函數進行各種變換處理,以實現旋轉角度的結果。

原始圖像:

opencv函數

旋轉中常用的函數有以下幾個函數

cv2.transpose: 對圖像矩陣進行轉置處理

img = cv2.imread(origin_img_path)
img_transpose = cv2.transpose(img)
cv2.imshow('transpose', img_transpose)
cv2.waitKey(0)

cv2.flip : 對圖像矩陣進行翻轉處理,參數可以設置為1,0,-1,分別對應著水平翻轉、垂直翻轉、水平垂直翻轉。

img = cv2.imread(origin_img_path)
img_flip = cv2.flip(img, 1)
cv2.imshow('flip', img_flip)
cv2.waitKey(0)

cv2.getRotationMatrix2D: 構建旋轉矩陣M,后續旋轉時候只需要與旋轉矩陣進行乘積即可完成旋轉操作

旋轉矩陣M

img = cv2.imread(origin_img_path)
rows, cols = img.shape
# 這里的第一個參數為旋轉中心,第二個為旋轉角度,第三個為旋轉后的縮放因子
# 可以通過設置旋轉中心,縮放因子以及窗口大小來防止旋轉后超出邊界的問題
M = cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)

cv2.warpAffine: 對圖像進行仿射變換,一般進行平移或者旋轉操作

img = cv2.imread(origin_img_path)
cv2.warpAffine(img, M,(lengh,lengh),borderValue=(255,255,255))  # M為上面的旋轉矩陣

numpy函數

numpy實現旋轉一般是使用numpy.rot90對圖像進行90度倍數的旋轉操作

官方介紹:

numpy.rot90(m, k=1, axes=(0, 1))[source]

Rotate an array by 90 degrees in the plane specified by axes.

Rotation direction is from the first towards the second axis.

k: Number of times the array is rotated by 90 degrees.

關鍵參數k表示旋轉90度的倍數,k的取值一般為1、2、3,分別表示旋轉90度、180度、270度;k也可以取負數,-1、-2、-3。k取正數表示逆時針旋轉,取負數表示順時針旋轉。

旋轉90度

逆時針

  • 使用opencv函數的轉置操作+翻轉操作實現旋轉
  • 使用numpy.rot90實現
def rotateAntiClockWise90(img_file):  # 逆時針旋轉90度
	img = cv2.imread(img_file)
    trans_img = cv2.transpose(img)
    img90 = cv2.flip(trans_img, 0)
    cv2.imshow("rotate", img90)
    cv2.waitKey(0)
    return img90
    
def totateAntiClockWise90ByNumpy(img_file):  # np.rot90(img, -1) 逆時針旋轉90度
    img = cv2.imread(img_file)
    img90 = np.rot90(img, -1)
    cv2.imshow("rotate", img90)
    cv2.waitKey(0)
    return img90

順時針

def rotateClockWise90(self, img_file):
	img = cv2.imread(img_file)
    trans_img = cv2.transpose( img )
    img90 = cv2.flip(trans_img, 1)
    cv2.imshow("rotate", img90)
    cv2.waitKey(0)
    return img90

def totateClockWise90ByNumpy(img_file):  # np.rot90(img, 1) 順時針旋轉90度
    img = cv2.imread(img_file)
    img90 = np.rot90(img, 1)
    cv2.imshow("rotate", img90)
    cv2.waitKey(0)
    return img90

旋轉180度、270度

使用numpy.rot90實現旋轉180度、270度

180度

img180 = np.rot90(img, 2)
cv2.imshow("rotate", img180)
cv2.waitKey(0)

270 度

img270 = np.rot90(img, 3)
cv2.imshow("rotate", img270)
cv2.waitKey(0)

旋轉任意角度,以任意色值填充背景

import cv2
from math import *
import numpy as np
 
# 旋轉angle角度,缺失背景白色(255, 255, 255)填充
def rotate_bound_white_bg(image, angle):
    # grab the dimensions of the image and then determine the
    # center
    (h, w) = image.shape[:2]
    (cX, cY) = (w // 2, h // 2)
 
    # grab the rotation matrix (applying the negative of the
    # angle to rotate clockwise), then grab the sine and cosine
    # (i.e., the rotation components of the matrix)
    # -angle位置參數為角度參數負值表示順時針旋轉; 1.0位置參數scale是調整尺寸比例(圖像縮放參數),建議0.75
    M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0)
    cos = np.abs(M[0, 0])
    sin = np.abs(M[0, 1])
 
    # compute the new bounding dimensions of the image
    nW = int((h * sin) + (w * cos))
    nH = int((h * cos) + (w * sin))
 
    # adjust the rotation matrix to take into account translation
    M[0, 2] += (nW / 2) - cX
    M[1, 2] += (nH / 2) - cY
 
    # perform the actual rotation and return the image
    # borderValue 缺失背景填充色彩,此處為白色,可自定義
    return cv2.warpAffine(image, M, (nW, nH),borderValue=(255,255,255))
    # borderValue 缺省,默認是黑色(0, 0 , 0)
    # return cv2.warpAffine(image, M, (nW, nH))
 
img = cv2.imread("dog.png")
imgRotation = rotate_bound_white_bg(img, 45)
 
cv2.imshow("img",img)
cv2.imshow("imgRotation",imgRotation)
cv2.waitKey(0)

45度

60度

參考

cv2.getRotationMatrix2D博客介紹

cv2.warpAffine 博客介紹

numpy.rot90

旋轉任意角度

到此這篇關于python opencv旋轉圖片的使用方法的文章就介紹到這了,更多相關python opencv旋轉圖片內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 基于OpenCV和C++ 實現圖片旋轉
  • Python+OpenCV+圖片旋轉并用原底色填充新四角的例子
  • Python+OpenCV 實現圖片無損旋轉90°且無黑邊
  • python opencv對圖像進行旋轉且不裁剪圖片的實現方法
  • python opencv實現圖片旋轉矩形分割
  • opencv圖片的任意角度旋轉實現示例

標簽:寧夏 金融催收 商丘 江蘇 云南 龍巖 酒泉 定西

巨人網絡通訊聲明:本文標題《python opencv旋轉圖片的使用方法》,本文關鍵詞  python,opencv,旋轉,圖片,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python opencv旋轉圖片的使用方法》相關的同類信息!
  • 本頁收集關于python opencv旋轉圖片的使用方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人免费视频国产在线观看| 色综合久久久久久久| 日韩视频中午一区| 亚洲最新视频在线观看| 国产精品123| 久久久精品免费观看| 久久国产精品第一页| a美女胸又www黄视频久久| 蜜臀精品一区二区三区在线观看| 日韩美女视频在线| 国产99精品国产| 国产清纯美女被跳蛋高潮一区二区久久w | 国产成人日日夜夜| 欧美一二三四区在线| 不卡一区二区三区四区| 日韩电影免费一区| 亚洲精品国产无天堂网2021| 在线观看av一区二区| 全国精品久久少妇| 久久无码av三级| 3d动漫精品啪啪1区2区免费| 色屁屁一区二区| eeuss鲁片一区二区三区在线观看| 六月婷婷色综合| 国产精品动漫网站| 精品理论电影在线| 在线观看亚洲专区| 99久久免费视频.com| 蜜桃av一区二区| 毛片基地黄久久久久久天堂| 天天综合色天天综合色h| 麻豆91精品91久久久的内涵| 日韩 欧美一区二区三区| 中文字幕不卡的av| 国产午夜精品一区二区三区嫩草| 在线观看免费亚洲| 国产亚洲欧洲997久久综合| 日韩欧美一二三区| 日韩区在线观看| 欧美二区在线观看| 精品久久国产老人久久综合| 91精品国产欧美一区二区18| 欧美色综合网站| 在线不卡中文字幕| 国产精品久久国产精麻豆99网站| 精品蜜桃在线看| 中文字幕精品综合| 国产精品国产三级国产| 亚洲精选免费视频| 日韩主播视频在线| 成人综合婷婷国产精品久久免费| 在线观看视频一区| 久久综合久久久久88| 亚洲一区二区三区在线看| 精东粉嫩av免费一区二区三区| 国产69精品一区二区亚洲孕妇| 日本伦理一区二区| 国产无遮挡一区二区三区毛片日本| 日本一二三四高清不卡| 麻豆视频一区二区| 欧美性三三影院| 亚洲电影一区二区三区| av在线不卡免费看| 精品国产乱子伦一区| 国产精品久线在线观看| 日韩成人免费电影| 欧美老年两性高潮| 一区二区三区高清| 蜜桃视频在线观看一区二区| 欧洲国产伦久久久久久久| 亚洲欧美成人一区二区三区| 六月丁香婷婷色狠狠久久| 欧美成人一区二区三区在线观看| 亚洲一区二区三区小说| 暴力调教一区二区三区| 首页综合国产亚洲丝袜| 欧美成人免费网站| 精品一区中文字幕| 日韩一区中文字幕| 日韩欧美电影一二三| 国产精品自拍在线| 亚洲精品第1页| 91精品福利在线一区二区三区| 国产电影一区在线| 久久午夜色播影院免费高清| 91蜜桃网址入口| 国产乱码精品一品二品| 蜜桃av一区二区在线观看| 亚洲国产精华液网站w | 9191国产精品| 久久爱www久久做| 亚洲香蕉伊在人在线观| 欧美一区二区三区四区五区 | 中文字幕亚洲视频| 色综合天天综合网国产成人综合天| 依依成人综合视频| 欧美大片国产精品| 99久久免费视频.com| 蜜桃久久精品一区二区| 一区二区三区在线观看动漫| 国产精品免费久久久久| 欧美性一二三区| 国产综合成人久久大片91| 国产精品天干天干在线综合| 91麻豆精品国产91久久久更新时间| 亚洲一区二区视频在线| 久久久精品免费观看| 91麻豆福利精品推荐| 国产精品亚洲人在线观看| 成人午夜av电影| 麻豆91在线播放| 亚洲成人免费看| 亚洲乱码一区二区三区在线观看| 精品嫩草影院久久| 久久久久久久网| 日韩午夜激情电影| 国产精品国产三级国产aⅴ中文 | 91网上在线视频| 国产精品99久久久久久宅男| 久久精品国产色蜜蜜麻豆| 国内成人免费视频| 美女被吸乳得到大胸91| 国产一区二区中文字幕| 国产盗摄一区二区| 在线这里只有精品| 色综合中文字幕| 欧美日韩国产美女| 国产欧美视频一区二区三区| 国产精品福利影院| 美腿丝袜亚洲综合| 国产精品白丝jk黑袜喷水| 成人精品视频一区二区三区 | 蜜臂av日日欢夜夜爽一区| 最新日韩av在线| 成人午夜短视频| 欧美一区二区三区不卡| 亚洲女人****多毛耸耸8| 日本中文字幕一区二区视频| av不卡免费在线观看| 在线观看91av| 亚洲日本一区二区| 色视频欧美一区二区三区| 日韩伦理电影网| 另类的小说在线视频另类成人小视频在线| 欧美久久久久久蜜桃| 久久欧美一区二区| 日韩精品亚洲专区| 久久婷婷久久一区二区三区| 欧美亚洲一区三区| 在线观看区一区二| 5月丁香婷婷综合| 色88888久久久久久影院野外| 国产一区二区调教| 麻豆免费精品视频| 午夜a成v人精品| 视频一区二区中文字幕| 亚洲午夜在线视频| 亚洲欧美另类久久久精品2019| 精品国产凹凸成av人导航| 91黄色免费版| 欧美va亚洲va在线观看蝴蝶网| 欧美一区二区三区视频在线 | 欧美大黄免费观看| 日韩视频在线永久播放| 91精品国产手机| 精品播放一区二区| 亚洲一区二区免费视频| 亚洲一二三专区| 不卡视频在线看| 欧美视频一区二区在线观看| 欧美日韩精品是欧美日韩精品| 欧美一区二区黄| 一区二区三区资源| 肉色丝袜一区二区| 91影院在线观看| 日韩一级片网站| 成人免费在线视频| 成人18视频在线播放| 欧美精品一二三| 久久精品男人的天堂| 亚洲午夜影视影院在线观看| av一本久道久久综合久久鬼色| 99re亚洲国产精品| 日韩一区二区电影网| 最新久久zyz资源站| 肉肉av福利一精品导航| 日本伦理一区二区| 中文字幕中文在线不卡住| 奇米精品一区二区三区在线观看| 高清不卡一区二区在线| 精品久久久久久久人人人人传媒 | 秋霞午夜av一区二区三区| www.激情成人| 欧美一区二区不卡视频| 日本视频一区二区| 欧美日韩精品免费观看视频 | 中文字幕一区二区不卡| 男男成人高潮片免费网站| 色天天综合色天天久久| 国产精品对白交换视频 |