在Matlab中读取cv :: Mat Matlab的.mat得到的结果与Matlab相比得到了不同的结果

时间:2017-03-11 09:03:47

标签: python matlab opencv

与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)

图像如下:

the result using python to read mat

但是在matlab中:

image = load('image.mat')
imshow(image.img)

结果如下:

enter image description here

似乎python在解析矩阵时出错了。

1 个答案:

答案 0 :(得分:1)

问题在于Matlab和OpenCV的默认颜色约定,OpenCV使用BGR颜色约定而不是RGB颜色空间,所以为了正确显示图像,你需要交换B和R通道,有多种方法可以做到这一点,根据OpenCV,可以这样做:

img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)