Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv合并只提供黑屏(python)_Python_Opencv - Fatal编程技术网

Opencv合并只提供黑屏(python)

Opencv合并只提供黑屏(python),python,opencv,Python,Opencv,我在学习opencv。我想改变rgb与某些进程,并合并它再次。到目前为止,我的代码只是给了我黑屏。正如你们所看到的,我通过打印来检查rgb,它不认为会出现黑屏 import numpy as np import cv2 img= cv2.imread( 'img.jpg', cv2.IMREAD_COLOR ) img=cv2.resize(img,(400,300)) b=img[:,:,0] g=img[:,:,1] r=img[:,:,2] b1,g1,r1=b,g,r r=

我在学习opencv。我想改变rgb与某些进程,并合并它再次。到目前为止,我的代码只是给了我黑屏。正如你们所看到的,我通过打印来检查rgb,它不认为会出现黑屏

import numpy as np  
import cv2  

img= cv2.imread( 'img.jpg', cv2.IMREAD_COLOR )
img=cv2.resize(img,(400,300))
b=img[:,:,0]
g=img[:,:,1]
r=img[:,:,2]
b1,g1,r1=b,g,r


r=r1*0.012+g1*0.0885+b1*-2.0e-04
g=1.12e-01*r1+8.89e-01*g1+1.55e-04*b1
b=r1*4.53e-03+g1*1.30e-04+b1

r=np.array(r,dtype=np.int64)
g=np.array(g,dtype=np.int64)
b=np.array(b,dtype=np.int64)

print(r)
print(g)
print(b)

img_F=cv2.merge((b,g,r))
cv2.imshow('Eya',img_F)


cv2.waitKey(0)  
cv2.destroyAllWindows()

我认为这是数据类型的问题。除非您有意将数据类型设置为
np.int64
,否则应将类型设置为
np.uint8
@sgarizvi谢谢您,将类型更改为uint8后,它就可以工作了。我认为rgb使用“int”类型,但可能还有其他我不知道的过程@남김대연... 默认情况下,OpenCV将图像读取为类型
uint8