与Matlab中的Matlab cv::Mat
一起阅读.mat
与Matlab相比得到的结果不同,如下所示
import scipy.io as sio
import numpy as np
data = sio.loadmat('image.mat')
img = data['img']
cv2.imshow('img', img)
图像如下:
但是在matlab中:
image = load('image.mat')
imshow(image.img)
结果如下:
似乎python在解析矩阵时出错了。
答案 0 :(得分:1)
问题在于Matlab和OpenCV的默认颜色约定,OpenCV使用BGR
颜色约定而不是RGB
颜色空间,所以为了正确显示图像,你需要交换B和R通道,有多种方法可以做到这一点,根据OpenCV,可以这样做:
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)