python - 使用 OpenCV 更改像素的颜色

标签 python opencv pixel

假设我有这朵玫瑰(不关心背景,只有白叶很重要)。

enter image description here

我把它转成灰度图: grayscaled=cv2.imread('white_rose.png',cv2.IMREAD_GRAYSCALE)

在红色 (R=255) 与白色像素具有相同对比度的情况下,如何将每个白色像素更改为红色像素?这意味着我想看到红色的白叶,但每个像素的 L 值都与 grayscaled 中的值相同?

最佳答案

您需要遍历灰色图像并自行创建一个新的彩色图像。

对于每个像素,您可以将彩色图像的 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

关于python - 使用 OpenCV 更改像素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29125349/

相关文章:

c++ - 在 Visual Studio 2010 中安装 Opencv 2.43

Python 名称错误 : name 'ElementNotVisibleException' is not defined with Selenium

python - 在装饰器包装器函数中访问装饰器参数

python - 如何将媒体目录中的图像显示到模板中? Django

python - python 中的氡变换

python - [x](y) 运算符到底是做什么的?

opengl - 如何使用 OpenGL 将像素数组直接绘制到屏幕上?

java - 什么是欧氏距离平方或距离平方和?

html - 是否有 CSS 媒体查询来更改 devicePixelRatio?

python - 理解 Django 的模型类