【问题标题】:read cv::Mat from Matlab's .mat in python get different results compared to Matlab [duplicate]与 Matlab 相比,从 Python 中的 Matlab 的 .mat 中读取 cv::Mat 得到不同的结果 [重复]
【发布时间】:2017-08-01 16:20:21
【问题描述】:

在 python 中从 Matlab 的 .mat 中读取 cv::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解析矩阵有问题。

【问题讨论】:

    标签: python matlab opencv


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,它解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 2012-07-17
    • 2018-09-19
    • 1970-01-01
    • 2018-11-04
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多