tata色々な備忘録

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

python+Opencvによる画像処理4(色チャンネル変更)

色チャンネルを触ってみる。

解像度を揃えたブランクをnumpyで作成し、 分割した色空間を入れ替えて流し込む。

BlueをRedに、GreenをBlueに、 RedをGreenに入れ替え。

import cv2
import numpy as np

def color_change(im):
    if im.ndim == 2:
        pass

    else :
        hight = im.shape[0]
        width = im.shape[1]
        dim = im.shape[2]
        
     # サイズ同一かつ空の画像空間作成
        color_change_im =np.zeros((hight,width,dim),np.uint8)
        
     BGRim = cv2.split(im)
        
        color_change_im[:,:,0]=BGRim[2]
        color_change_im[:,:,1]=BGRim[0]
        color_change_im[:,:,2]=BGRim[1]

        cv2.imshow("color_change",color_change_im)
        cv2.waitKey(0)
        cv2.destroyAllWindows()  

if __name__ == '__main__':
    im = cv2.imread("lena.jpg")
    if not (im == None):
        color_change(im)

f:id:tatabox2000:20130715155143p:plain

参考 http://stackoverflow.com/questions/12881926/create-a-new-rgb-opencv-image-using-python