現在、Pythonを使って画像の編集をしております。
具体的には、画像を数値化(配列化)し、各ピクセルについて、指定した条件を満たせばそのままの数値([R,G,B])を、満たさなければ黒([0,0,0])を返し、その結果を画像として出力するというプログラムを作成したく思っています。
この度、指定する条件は、各ピクセルのRがG,Bよりも大きい場合(=ピクセルが赤の場合)といったものです。
そして、このような条件を赤の場合,緑の場合,青の場合の3パターン(3つの画像)で出力したいと思っております。
下記のように画像を読み込み、数値がRGBの順になるような3次元配列を作成しました。
Python
1img = cv2.imread("test.png") 2img_array = np.asarray(img) 3img_array2 = cv2.cvtColor(img_array, cv2.COLOR_BGR2RGB)
上記コードの続きは、3次元配列における任意の要素(例えばRなど)を取り出す、取り出した値をif文で条件と比較する。
これをfor文で全ピクセル分が終了するまでループさせ、終了したら新たに作成された配列を画像として出力する。
という流れになるかと思うのですが、あまり多次元配列を扱ったことがないので、最初の「3次元配列における任意の要素を取り出す」方法が分からず困っています。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。