Python3下OpenCV图像格式转换方法

   OpenCV图像格式是BGR,和我们日常RGB图像颜色通道不一致,恰好相反。虽然颜色通道不一致,
但每个颜色通道的值是没有问题的,如果解析出来,重新组合,就能转换成RGB格式图像了。
    下面的代码,test_probelm是观察效果。而method1、method2、method3提示了使用的三种方法。
__author__ = 'jcy'
import cv2
import matplotlib.pyplot as plt
class OpenCV_pyplot:
    def __init__(self,input_file="IMG_1043.jpg"):
        self.img=cv2.imread(input_file)
    def test_problem(self):
        cv2.imshow("OpenCV:BGR",self.img)
        cv2.waitKey(0)
        plt.figure(1)
        plt.imshow(self.img)
        plt.title("PyPlot:BGR")
        plt.show()
    def method1(self):
        plt.figure(2)
        plt.suptitle("method1")
        b, g, r = cv2.split(self.img)
        img2 = cv2.merge([r, g, b])
        plt.subplot(1, 2, 1)
        plt.imshow(self.img)
        plt.title("init:BGR")
        plt.subplot(1, 2, 2)
        plt.imshow(img2)
        plt.title('convert:RGB')
        plt.show()
    def method2(self):
        img2 = self.img[...,::-1]
        plt.figure(3)
        plt.suptitle("method2")
        plt.subplot(1, 2, 1)
        plt.imshow(self.img)
        plt.title("init:BGR")
        plt.subplot(1, 2, 2)
        plt.imshow(img2)
        plt.title('convert:RGB')
        plt.show()
    def method3(self):
        img2 = cv2.cvtColor(self.img, cv2.COLOR_BGR2RGB)
        plt.figure(4)
        plt.suptitle("method3")
        plt.subplot(1, 2, 1)
        plt.imshow(self.img)
        plt.title("init:BGR")
        plt.subplot(1, 2, 2)
        plt.imshow(img2)
        plt.title('convert:RGB')
        plt.show()
plot1=OpenCV_pyplot()
plot1.test_problem()
plot1.method1()
plot1.method2()
plot1.method3()

猜你喜欢

转载自blog.csdn.net/weixin_42039090/article/details/80686700