Python 保存图像时,保存的jpg文件上的颜色不正确(cv2.color_BGR2RGB无法修复此问题)
我的程序应该拍摄一张照片,然后将其存储在指定的文件夹中。它正在做所有这些,但是存储的jpg文件上的颜色与它显示的图像相差很远。我想纠正这一点 我试过cv2.COLOR_BGR2HSV,但我认为RGB是最好的选择。请帮忙Python 保存图像时,保存的jpg文件上的颜色不正确(cv2.color_BGR2RGB无法修复此问题),python,python-3.x,opencv,Python,Python 3.x,Opencv,我的程序应该拍摄一张照片,然后将其存储在指定的文件夹中。它正在做所有这些,但是存储的jpg文件上的颜色与它显示的图像相差很远。我想纠正这一点 我试过cv2.COLOR_BGR2HSV,但我认为RGB是最好的选择。请帮忙 import cv2 import matplotlib.pyplot as plt import sys def main(): cap = cv2.VideoCapture(0) if cap.isOpened(): ret, frame=
import cv2
import matplotlib.pyplot as plt
import sys
def main():
cap = cv2.VideoCapture(0)
if cap.isOpened():
ret, frame=cap.read()
print(ret)
print(frame)
else:
ret = False
#I AM TRYING TO CONVERT THE COLOR USING THIS LINE OF CODE
img1 = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
plt.imshow(img1)
plt.title("Car Image")
plt.xticks([])
plt.yticks([])
plt.show()
cv2.imwrite("C:/Users/Fahim/PycharmProjects/CarPark/Car_Image.jpg", img1);
cap.release()
if __name__ == "__main__":
main()
我想存储显示的图像OpenCV和Matplotlib约定不同, 因为它们分别使用BGR和RGB 您可能会发现重命名变量很有帮助,例如将变量重命名为
frame\u bgr
。
显式符号将帮助您记住第一和第三个通道
应该交换
在使用一个包或另一个包中的例程时来回切换
你发布的转换非常好。
您可以选择分配结果,例如分配给img\u rgb
如果你主要打cv2
电话,
然后,在编写自己的函数时,您可以选择采用
所有输入和输出的BGR约定,
尽量减少转换。传递到cv2的过程可能重复。im将图像写入bgr,而不是RGB,这样才有效!谢谢我仍然不明白为什么BGR提供正确的颜色,但RGB没有。不过非常感谢。我刚换了这一行,效果很好。imwrite(“C:/Users/Fahim/PycharmProjects/CarPark/Car_Image.jpg”,frame);