tata色々な備忘録

データ解析、画像解析、化学分析などなど

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)

f:id:tatabox2000:20130714171943p:plain

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)

f:id:tatabox2000:20130714235808p:plain

参考 http://opencv-code.com/tutorials/drawing-histogram-in-python-with-matplotlib/