基本的な操作画像OpenCVの

内容:属性情報を取得し、画像を読み、ROIの画像、画像分割とチャンネルをマージ

1.読み取った画像

  画素値を返す:直接座標割り当てによって:直接のピクセル値を変更し、座標を使用して得ることができます

  スピードアップし、遅いが徐々にピクセルを変更します(array.itemでnumpyのを使用して、彼らが使用する、行列演算を使用)とarray.itemset()

CV2インポート
インポートNP AS numpyの
IMG = cv2.imread( "test.jpg") 取得画素値
PX = IMG [100,100] 
ブルーIMG = [100,100,0] 
印刷(PX、青)
の#画素値
IMG [100,100] = [255,255,255] 
プリント(IMG [100,100])
使用アイテム
プリント(img.item(10,10,2))
img.itemset((10,10,2)、100)
プリント(img.item(10,10 、2))

2.画像​​属性:行、列、チャネル、データのタイプ、画素数

プリント(img.shape) 
#(342,548,3)(342548)グレースケール画像のみ行と列で
印刷(img.size、img.dtype)
#562 248 UINT8画素数、画像データの種類、注:実行コードデータ型が一致しているとき

3.画像のROI

ROI = IMG [Y1:Y2、X1:X2]

4分割と合成画像チャネル

B、G、R&LT cv2.split =(IMG)
IMG = cv2.merge(BGR)
B = IMGの[:、:、0] 
numpyのインデックスに変更する際に使用することができる限り多くの#、スプリット時間がかかると

画像添加および混合

cv2.add(x、y)は
cv2.addWeighted(IMG1、0.7、IMG2、0.3、0)#dst = *のIMG1 + B * + C IMG2

前記画像マスク

輸入CV2の
NPのようインポートnumpyの
#ロード二つの画像
IMG1 = cv2.imread( 'messi5.jpg')
IMG2 = cv2.imread( 'OpenCVのロゴ-white.png')

私は左上隅にロゴを入れたい#、だから私は、ROIの作成
行、colsの、チャンネル= img2.shapeの
ROI = IMG1 [COLS:行、0 0] 

今のロゴのマスクを作成し、またその逆のマスクを作成する#を
(IMG2、cv2.COLOR_BGR2GRAYをimg2gray = cv2.cvtColor )
RET、マスク= cv2.threshold(img2gray、10、255、cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(マスク)

次に#ROIの中のロゴのブラックアウト領域
img1_bg = cv2.bitwise_and(ROI、ROIマスク= mask_inv) 
は、ロゴ画像からロゴの領域のみを取ります。
img2_fg = cv2.bitwise_and(IMG2、IMG2、マスク=マスク)

#は、ROI内のロゴを入れて、メイン画像変更
DST = cv2.add(img1_bg、img2_fg)
IMG1 [0:行、0:COLS] = DST 

cv2.imshow( 'のRES'、IMG1)
cv2.waitKey(0)
CV2を。 destroyAllWindows()

  

 

おすすめ

転載: www.cnblogs.com/sword-/p/11344375.html