2017-01-07 70 views
2

OpenCVでRGB画像から単一の色のみをどのように表示できますか? この考え方は、RGBスペクトルの特定の色の強度に対応するグレースケールでイメージを印刷できるようにすることです。OpenCV:画像内の色によるフィルタ

答えて

2

あなたはsplitを使用できます:

これは時間的にコストのかかる操作であり、あなただけ(赤たとえば、)channlesのいずれかが必要と
blue, green, red = cv2.split(img) 

それとも、あなたができる直接スライス次のようにのように原画像:

red = img[:,:,2] 

明るい画素は原画像に高い赤色値を持つものがどこにあるかgreyscaled画像を返します。

これが役に立った!

+1

私はこれを自己回答の質問にするつもりでしたが、私はあなたのことがさらに良いと感じます。ありがとう –

1
# import usefull libraries 
import numpy as np 
import cv2 

# Set global parameters 
RED = 0 
GREEN = 1 
BLUE = 2 

# Load the image 
img_color = cv2.imread("fruits.jpg", flags=cv2.IMREAD_COLOR) 

# Filter the image by desired color 
img_color_filtered = np.asarray([y[RED] for x in img_color for y in x]).reshape((img_color.shape[:2])) 
関連する問題