C++中cv::Mat中的data属性对应在python中是什么

1, 因为我要使用一个dll,看C++的代码,是这样调用的

using namespace cv;

m_image_mat = imread ( full_file_name );
data = m_image_mat.data

这里有一个data属性

2,在python中,我刚开始用cv2包的imread加载图片,后来发现高版本的opencv3.2版本的导入图片是numpy array类型的数据,而不是mat类型的,网上查询的解决办法是使用cv包,转换array对象为cvmat对象

import cv2
import cv2.cv as cv

img = cv2.imread('1.jpg')
cvmat = cv.fromarray(img)

cvmat对象含有cvmat.width, cvmat.height, cvmat.step, 就是没有cvmat.data

AttributeError: 'cv2.cv.cvmat' object has no attribute 'data'

看起来C++ cv的Mat和python cvmat中定义的类还是有不同的

http://physics.nyu.edu/grierl...

我查看了uchar* cv::Mat::data的说明,“pointer to the data” 那么data的类型是什么样的呢

先谢谢了

阅读 13k
1 个回答

我是使用PIL模块来将cv2.imread获取到的数据转换为图片数据的。
具体你说的data我不太清楚在Python里面怎么获取,应该就是指的图片数据了吧。
代码如下:

import cv2
from PIL import Image, ExifTags

cvimage = cv2.imread('1.jpg')
image = Image.fromarray(cvimage)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题