opencv由二维数组转换图像问题
Matimage;image.create(m,n,CV_8UC3);for(intj=0;j<m;++j){uchar*data=image.ptr(j);for(in...
Mat image; image.create(m ,n ,CV_8UC3); for(int j = 0; j < m; ++j) { uchar* data = image.ptr(j); for(int i = 0; i < n; ++i) { *data++ = p[m][i++]; *data++ = p[m][i++]; *data++ = p[m][i++]; } }// IplImage pImg= IplImage(m); IplImage * img = cvCreateImage(cvGetSize(&image),IPL_DEPTH_8U,3); cvGetImage(&image,img); cvNamedWindow("1"); cvShowImage("1",img); cvWaitKey(4000); //cvReleaseImage(&&pImg); cvDestroyAllWindows(); //释放内存 for (i=0; i<m; i++) delete [] p[i]; delete [] p;为什么会出错呢?我的二维数组是p数组,我是新手,求指导!!
我现在问题是报错但不知道怎么处理,我想要由数组p显示图像,可是显示不了,求指教!问题代码如下:
CvMat mat = cvMat(width,height,CV_8UC3,p);
IplImage * img = cvCreateImage(cvGetSize(&mat),IPL_DEPTH_8U,1);
cvGetImage(&mat,img);
cvNamedWindow("1");
cvShowImage("1",img);
cvWaitKey(0); 展开
我现在问题是报错但不知道怎么处理,我想要由数组p显示图像,可是显示不了,求指教!问题代码如下:
CvMat mat = cvMat(width,height,CV_8UC3,p);
IplImage * img = cvCreateImage(cvGetSize(&mat),IPL_DEPTH_8U,1);
cvGetImage(&mat,img);
cvNamedWindow("1");
cvShowImage("1",img);
cvWaitKey(0); 展开
3个回答
展开全部
1、首先需要声明一个OpenCV的IplImage * 格式的变量并使用cvCreateImage申请空间,用于存储图像。
2、然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
3、最后cvRealease释放空间。
2、然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
3、最后cvRealease释放空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
展开全部
第一OpenCV中的Mat矩阵就是你想要的二维数组值,你可以建立一个动态二维数组传出Mat矩阵存储图像的值!至于你说的存储数组值显示成图像而不是数据,你可以将使用数据类型转换!因为OpenCV的cvShowImage()你需要查下支持什么数据类型显示!例如:字符型变换成IplImage型等
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你需要声明一个OpenCV的IplImage * 格式的变量并使用cvCreateImage申请空间,用于存储图像。
然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
最后cvRealease 释放空间
然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
最后cvRealease 释放空间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询