内容:属性情報を取得し、画像を読み、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()