Python版OpenCVで画像の一部分だけに処理を施す方法をソースコード付きで解説します。
【部分処理】NumPyのスライス
Pythonでは、NumPyのスライスを使うことで、OpenCVで読み込んだ画像の一部分だけに処理を施します。
実行例
■入力画像(左)、出力画像(右)
※画像の一部分を黒塗り
書式
img[y:y+h, x:x+w] = 値 or NumPy配列
パラメータ | 説明 |
---|---|
x, y | 窓画像の左上座標(x, y) |
w, h | 窓画像の幅・高さ |
値 | 値を代入すると、スライスされた部分全ての要素が指定した「値」に置き換わります |
NumPy配列 | スライスされた部分と同じサイズのNumPy配列を代入すると、代入したNumPy配列に置き換わります |
ソースコード(Python3+OpenCV3)
サンプルプログラムのソースコードです。
#-*- coding:utf-8 -*- import cv2 import numpy as np # 入力画像とテンプレート画像をで取得 img = cv2.imread("C:\prog\python\input.png") # 窓画像の左上座標 x, y = 50, 100 # 窓画像の幅・高さ w, h = 40, 40 # 窓画像を黒塗り(画素値を0に) img[y:y+h, x:x+w] = 0 # 画像の書き込み cv2.imwrite("C:\prog\python\output.png", img)
【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
コメント