Histogram equalization not working on color image - OpenCV

前端 未结 3 797
礼貌的吻别
礼貌的吻别 2020-12-23 02:10

I am trying to perform a histogram equalization using OpenCV using the following function

Mat Histogram::Equalization(const Mat& inputImage)
{
    if(inp         


        
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-23 03:10

    And the python version, @sga:

    import cv2
    import os
    
    def hisEqulColor(img):
        ycrcb=cv2.cvtColor(img,cv2.COLOR_BGR2YCR_CB)
        channels=cv2.split(ycrcb)
        print len(channels)
        cv2.equalizeHist(channels[0],channels[0])
        cv2.merge(channels,ycrcb)
        cv2.cvtColor(ycrcb,cv2.COLOR_YCR_CB2BGR,img)
        return img
    
    
    fname='./your.jpg'
    img=cv2.imread(fname)
    
    cv2.imshow('img', img)
    img2=hisEqulColor(img)
    cv2.imshow('img2',img2)
    

    However this will produce noise in the image (Eg, the left image below)

提交回复
热议问题