我正在一个项目中工作,我需要从图像中减去RGB值。在例子中,我想用红色减去蓝色通道,所以红色得到减法的差值。在
我有图像的下一个属性:
尺寸:1456x2592,
bpp:3个在
我使用的图像提供了以下数组:
[[[ 63 58 60]
[ 63 58 60]
[ 64 59 61]
...,
[155 155 161]
[155 155 161]
[155 155 161]]
[[ 58 53 55]
[ 60 55 57]
[ 62 57 59]
...,
[157 157 163]
[157 157 163]
[158 158 164]]
我知道这些是图像中的值(RGB),所以现在我继续做代码(我基于this code)
^{pr2}$当我打印J矩阵时,它给出了以下数组:
B、G、R
蓝色=蓝色-红色
[[[ 3 58 60]
[ 3 58 60]
[ 4 59 61]
...,
[ 95 155 161]
[ 95 155 161]
[ 95 155 161]]
[[ 2 53 55]
[ 0 55 57]
[ 2 57 59]
...,
[ 97 157 163]
[ 97 157 163]
[ 98 158 164]]
但是我无法打开新图像,如果我将一个RGB通道设置为一个值,它会显示图像。我用下面几行:
import cv2
import numpy as np
# read image into matrix.
m = cv2.imread("python.png")
# get image properties.
h,w,bpp = np.shape(m)
# iterate over the entire image.
for py in range(0,h):
for px in range(0,w):
m[py][px][0] = 0 //setting channel Blue to values of 0
# display image
cv2.imshow('matrix', m)
cv2.waitKey(0)
如何从彼此中减去RGB通道?在
PS:在MatLab中,它的工作方式很有魅力,但我不能用python来实现。在
请注意,此操作将矩阵(图像)的},这可能导致其他{a1}。IMO,一个更好(更有效)的方法是:
dtype
从uint8
更改为{代码正在将RGB负值操作为零。。。在
相关问题 更多 >
编程相关推荐