python+Opencvによる画像処理3(色チャンネルとヒストグラム2)
1.色チャンネルの取り出し
import numpy as np import cv2 im = cv2.imread("lena.jpg") RGB =cv2.split(im) Blue = RGB[0] Green = RGB[1] Red = RGB[2] cv2.imshow("Blue",Blue) cv2.imshow("Green",Green) cv2.imshow("Red",Red)
2. 別な色チャンネル取り出し法とヒストグラム
im = cv2.imread("lena.jpg") Blue = im[:,:,0] Green = im[:,:,1] Red = im[:,:,2]
各色のヒストグラム
import cv2 import pylab as plt def show_histogram(im): if im.ndim == 2: # グレースケール plt.hist(im.lavel(), 256, range=(0, 255), fc='k') plt.show() elif im.ndim == 3: # カラー fig = plt.figure() fig.add_subplot(311) plt.hist(im[:,:,0].ravel(), 256, range=(0, 255), fc='b') plt.xlim(0,255) fig.add_subplot(312) plt.hist(im[:,:,1].ravel(), 256, range=(0, 255), fc='g') plt.xlim(0,255) fig.add_subplot(313) plt.hist(im[:,:,2].ravel(), 256, range=(0, 255), fc='r') plt.xlim(0,255) plt.show() if __name__ == '__main__': im = cv2.imread("lena.jpg") if not (im == None): show_histogram(im)
参考 http://opencv-code.com/tutorials/drawing-histogram-in-python-with-matplotlib/