2015-03-18 2 views
2

Позвольте сказать, что у меня есть эта роза (не заботятся о фоном, важны только белые листья).Изменить цвет пикселя с помощью OpenCV

enter image description here

Я преобразовать его в оттенках серого изображения: grayscaled=cv2.imread('white_rose.png',cv2.IMREAD_GRAYSCALE)

Как я могу изменить каждый белый пиксел к красному при условии красного цвета (R=255) будет иметь тот же контраст в качестве белый есть? Значение Я хочу видеть белые листья в красном цвете, но с тем же значением L каждого пикселя, что в grayscaled?

+0

Измените цветовое пространство на HSV, а затем выполните соответствующие изменения. Таким образом, вы будете уверены, что будете иметь постоянную контрастность. – scap3y

+0

спасибо. Но что вы подразумеваете под * соответствующими изменениями? @ scap3y –

+0

Для получения дополнительной информации о цветовом пространстве HSV вы можете обратиться к ссылке [здесь] (http://www.tech-faq.com/hsv.html). Например, белый будет иметь очень низкие значения S и V. Вы можете изменить значение H там, которое соответствует RED и соответствующим образом изменить значение S/V. – scap3y

ответ

1

Вам нужно зациклиться на своем сером изображении и создать новое цветное изображение самостоятельно.

Для каждого пикселя, вы можете заменить значение вашего цветного изображения R с остатком от деления на 255 и относительной серого значения:

import cv2 
import numpy as np 

img = cv2.imread('5585T.jpg') 
print type(img) 
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
new=[[[0,0,255%j] for j in i] for i in img_gray] 
dt = np.dtype('f8') 
new=np.array(new,dtype=dt) 

cv2.imwrite('img.jpg',new) 

enter image description here

и new=[[[255%j,255%j,j] for j in i] for i in img_gray]:

enter image description here

+0

Спасибо. Но в этом случае белые пиксели будут изменены на красные пиксели. Я скорее хочу изменить цвет листьев красным, но красным цветом, я не имею в виду (0,0,255), потому что интенсивность красного цвета должна быть такой же, как значение L на уровне серой шкалы изображения. –

+0

@ Кабины редактировать! – Kasramvd

+0

Я поддерживаю усилия, но я не могу согласиться, потому что из-за этого я вижу, что он слишком красный (почти темный) в регионах, где он почти слишком белый (это означает, что красный красный цвет должен быть не слишком темным в таких регионах). Большое спасибо за усилия, чтобы помочь мне –

Смежные вопросы