从数组初始化OpenCv Mat不工作
OpenCv Mat initialization from array not working
我正在用这样的数组初始化Mat对象
int data[4] = {111,2,3,4};
Mat A = Mat(2, 2, CV_8UC1, data);
现在当我打印at(1,1)的值应该是4
cout<<"n m1 at 1,1 "<<(int)A.at<uchar>(1,1);
打印- 0
我在Windows XP和OpenCv 2.3中使用VS2008。我从昨天起就被它缠住了。
您的矩阵包含8位元素(这就是CV_8UC1
的意思)。你传递给它一个整型数组。假设32位整型,第一个,111
,应该足以填充数组。111
最重要的8位将进入1,1
位置,这些是0
。所以你得到一个值为0
的元素。
尝试传递8位无符号元素:
unsigned char data[4] = {111,2,3,4};
Mat A = Mat(2, 2, CV_8UC1, data);
或者,如果您需要存储有符号的32
位元素,请使用CV_32S
。
Try
unsigned char data[4] = {111,2,3,4};
Mat A = Mat(2, 2, CV_8UC1, data);
或
int data[4] = {111,2,3,4};
Mat A = Mat(2, 2, CV_32SC1, data);
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- Difference in displaying cv2 Mat
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- C++为线程工作动态地分割例程
- Qt-工作线程崩溃时将cv::Mat转换为QImage
- OpenCV的"calcCovarMatrix"函数中"const Mat*样本"参数的工作原理?
- 矢量 :<Mat>:size() 工作不畅
- C++:"find non zero-elements of cv::mat"无法按预期工作
- 使用矢量显示视频无法<Mat>正常工作
- 在不复制数据的情况下将OpenCV Mat发送到MATLAB工作区的方法
- IplImage的cvLoadImage工作,但cv::imread的cv::Mat不工作
- Mat::convertTo不能与OpenMP一起工作
- 从数组初始化OpenCv Mat不工作
- Mat::不在OpenCV中工作的