2016-09-03 16 views
1

私はPython OpenCVを初めて使用しています。私はいくつかの文書と回答を読んだhereが、私は次のコードが何を意味するのかを把握することができません:私はBasically, every pixel can be transformed as X = aY + b where a and b are scalars.ことを知るようになってきたPython OpenCVで画像のコントラストを上げるには

if (self.array_alpha is None): 
    self.array_alpha = np.array([1.25]) 
    self.array_beta = np.array([-100.0]) 

# add a beta value to every pixel 
cv2.add(new_img, self.array_beta, new_img)      

# multiply every pixel value by alpha 
cv2.multiply(new_img, self.array_alpha, new_img) 

。基本的に、私はこれを理解しています。しかし、私はコードを理解していなかったし、これをどのようにコントラストを向上させる。今まで、私は単にあなたの助けのためのimg = cv2.imread('image.jpg',0)

おかげ

答えて

3
X = aY + bための最良の説明が(実際にはそれ f(x) = ax + b)) https://math.stackexchange.com/a/906280/357701

シンプルに設けられた

を使用して画像を読み取る

を管理していますコントラストの明度/明度/明度を次のように調整するだけです。

import cv2 

img = cv2.imread('test.jpg') 
cv2.imshow('test', img) 
cv2.waitKey(1000) 
imghsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 


imghsv[:,:,2] = [[max(pixel - 25, 0) if pixel < 190 else min(pixel + 25, 255) for pixel in row] for row in imghsv[:,:,2]] 
cv2.imshow('contrast', cv2.cvtColor(imghsv, cv2.COLOR_HSV2BGR)) 
cv2.waitKey(1000) 
raw_input() 
6

私はLABカラーチャネルを使用する方法を提案したいと思います。 Wikipediaには、LABカラーチャネルについての情報が十分にあります。

私はOpenCVの3.0.0とPythonを使って次のことを行っている:

import cv2 

#-----Reading the image----------------------------------------------------- 
img = cv2.imread('Dog.jpg', 1) 
cv2.imshow("img",img) 

#-----Converting image to LAB Color model----------------------------------- 
lab= cv2.cvtColor(img, cv2.COLOR_BGR2LAB) 
cv2.imshow("lab",lab) 

#-----Splitting the LAB image to different channels------------------------- 
l, a, b = cv2.split(lab) 
cv2.imshow('l_channel', l) 
cv2.imshow('a_channel', a) 
cv2.imshow('b_channel', b) 

#-----Applying CLAHE to L-channel------------------------------------------- 
clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8,8)) 
cl = clahe.apply(l) 
cv2.imshow('CLAHE output', cl) 

#-----Merge the CLAHE enhanced L-channel with the a and b channel----------- 
limg = cv2.merge((cl,a,b)) 
cv2.imshow('limg', limg) 

#-----Converting image from LAB Color model to RGB model-------------------- 
final = cv2.cvtColor(limg, cv2.COLOR_LAB2BGR) 
cv2.imshow('final', final) 

#_____END_____# 

そのままあなたがコードを実行することができます。 CLAHE(Contrast Limited Adaptive Histogram Equalization)がどのようなものなのかを知るためには、Wikipediaを再度確認することができます。

関連する問題