画像の幾何変換は、幾何学的に画像コンテンツを変更することなく空間画像を変換します。
オープンリーディングに画像をクリックしてください:
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軸の翻訳を翻訳して表示されます。
あなたの答えをコメントアウト