2017-03-11 3 views
0

Lesen cv::Mat von Matlab .mat in Python zu unterschiedlichen Ergebnissen in Matlab im Vergleich zu bekommen, wielesen cv :: Mat von Matlab .mat in Python unterschiedliche Ergebnisse im Vergleich zu Matlab

import scipy.io as sio 
import numpy as np 
data = sio.loadmat('image.mat') 
img = data['img'] 
cv2.imshow('img', img) 

das Bild folgen wie folgt:

the result using python to read mat

aber in Matlab:

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

das Ergebnis wie folgt:

enter image description here

scheint es, dass der Python mit parseing die Matrix falsch hat.

Antwort

1

Das Problem ist mit Standard-Farb Konventionen von Matlab und OpenCV, OpenCV BGR Farbkonvention statt RGB Farbraum verwendet, also um Ihr Bild angezeigt zu bekommen richtig müssen Sie die B- und R-Kanäle tauschen, gibt es mehrere Möglichkeiten, um dies zu tun, wie OpenCV kann es als getan werden:

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

danke, es löst meine Frage! – cupwater

Verwandte Themen