永興シンプルなノートの画像変換-OpenCV-4

画像の幾何変換は、幾何学的に画像コンテンツを変更することなく空間画像を変換します。
オープンリーディングに画像をクリックしてください:
ここに画像を挿入説明
1、画像スケーリング:
cv2.resize(SRC、DSIZE、DST =なし、なし= FX、FY =なし、補間=なし)
(注:デフォルトパラメータはオプションのパラメータであるなしに等しいですデフォルト値があります)

  • SRC:処理対象の画像オブジェクト
  • DSIZE:(DSIZE =なし、ズーム画像はFXおよびFYによって決定されていない場合)は、画像の画素値が列と行を指定します
  • DST:処理された画像オブジェクト
  • FX:それが0である場合、幅方向のスケーリングは、それが続くdsize.width / src.cols(二重)を算出
  • FY:それが0である場合、高さ方向のスケーリング、それは計算され(二重)dsize.height / src.rowsに従います
  • 補間:指定補間モードは、再計算ピクセルの画像スケーリング方法の後に、以下の通りです。
コマンド
INTER_NEAREST 最近傍補間
INTER_LINEAR バイリニア補間(デフォルト)
INTER_CUBIC バイキュービック補間4x4画素近傍
INTER_LANCZOS4 8×8画素近傍補間ランチョス
INTER_AREA エリア再サンプリングを用いた画素との間の関係
import cv2
img = cv2.imread("first.jpg") #read
imgRe1 = cv2.resize(img,(600,600),interpolation=cv2.INTER_AREA)
imgRe2 = cv2.resize(img,None,fx=0.5,fy=0.5)
cv2.imshow("RE1",imgRe1) #show
cv2.imshow("RE2",imgRe2)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

ここに画像を挿入説明
図2に示すように、画像変換:
画像は、指定された方向に沿って画像並進運動であり、主に二次元平面内でy軸Xに沿って移動させます。
アフィン変換は、OpenCVの行列warpAffineカスタムフィットが達成されるで機能することができる
ここに画像を挿入説明
cv2.warpAffine(SRC、M、DSIZE、 DST =なし、フラグ=なし、borderValue =なし)

  • SRC:それは元の画像を指し、

  • M:マット:翻訳行列

マット行列は、x、yの2つの方向に移動した距離である2行3列の行列であります

ここに画像を挿入説明
各画素は、2×2の行列乗算に関連しています。
ここに画像を挿入説明

  • DSIZE:元祖を、画像サイズを変換した後、
  • 画像処理:DST
  • フラグ:補間モード
フラグ 補間法
cv2.INTER_LINEAR 線形補間(デフォルト)
cv2.INTER_NEAREST 最近傍補間
cv2.INTER_AREA 補間エリア
cv2.INTER_CUBIC キュービックスプライン補間
cv2.INTER_LANCZOS4 ランチョス補間
  • borderValue:変換後の境界塗りつぶしの色、BGRフォーマット、デフォルトの黒
import cv2
import numpy as np
img = cv2.imread("first.jpg")
M = np.float32([[1,0,10],[0,1,10]])
width , height = img.shape[0:2] #获取图像的行和列
imgRe = cv2.warpAffine(img,M,(width+10,height+10),borderValue=(255,255,255))
#M要求为 float 类型 一般使用np.float32
cv2.imshow("Reimg",imgRe)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

ここに画像を挿入説明
ここに画像を挿入説明
:3、画像の回転
回転の中心とすぐに画像全体指定点
:我々は最初の回転アフィン変換行列得る
cv2.getRotationMatrix2D(センター、角度、スケール)

  • 中央:回転中心(画像の中心は、一般に、画像の行及び幅によって決定されます)
  • 角度:回転角度
  • スケール:ズームレベル

その後、我々アフィン変換:
cv2.warpAffine(SRC、M ,. Dsizeフィールド、DST =なし、フラグを=なし、borderValue =なし)

  • SRC:それは元の画像を指し、

  • M:マット:アフィン行列

マット行列は、x、yの2つの方向に移動した距離である2行3列の行列であります

ここに画像を挿入説明
各画素は、2×2の行列乗算に関連しています。
ここに画像を挿入説明

  • DSIZE:元祖を、画像サイズを変換した後、
  • 画像処理:DST
  • フラグ:補間モード
フラグ 補間法
cv2.INTER_LINEAR 線形補間(デフォルト)
cv2.INTER_NEAREST 最近傍補間
cv2.INTER_AREA 補間エリア
cv2.INTER_CUBIC キュービックスプライン補間
cv2.INTER_LANCZOS4 ランチョス補間
  • borderValue:変換後の境界塗りつぶしの色、BGRフォーマット、デフォルトの黒
import cv2
img = cv2.imread("~/hello.jpg") #read
width , height = img.shape[0:2] #利用切片 获取 行 和 列
M = cv2.getRotationMatrix2D((width/2,height/2),45,0.9) #获取仿射矩阵
imgRo = cv2.warpAffine(img,M,None,borderValue=(255,255,255)) #仿射变换
cv2.imshow("reImg",imgRo)
cv2.imshow("Img",img)
cv2.waitKey()
cv2.destroyAllWindows()

ここに画像を挿入説明

運動4:
折り目1減速回転55のカラーモード、32度の読みを読み取る画像はグレースケールで倍加回転、及び55個の画素がY軸の翻訳を翻訳して表示されます。

あなたの答えをコメントアウト

公開された45元の記事 ウォン称賛28 ビュー10000 +

おすすめ

転載: blog.csdn.net/m0_43505377/article/details/103750874