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);
展开
 我来答
鸢梨的小布丁
2015-11-06 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.3万
采纳率:21%
帮助的人:2188万
展开全部
1、首先需要声明一个OpenCV的IplImage * 格式的变量并使用cvCreateImage申请空间,用于存储图像。
2、然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
3、最后cvRealease释放空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
慕_贵族
2015-05-02 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:114
采纳率:100%
帮助的人:65.2万
展开全部
第一OpenCV中的Mat矩阵就是你想要的二维数组值,你可以建立一个动态二维数组传出Mat矩阵存储图像的值!至于你说的存储数组值显示成图像而不是数据,你可以将使用数据类型转换!因为OpenCV的cvShowImage()你需要查下支持什么数据类型显示!例如:字符型变换成IplImage型等
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宏中衡器
2015-12-04 · TA获得超过384个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:96.9万
展开全部
首先你需要声明一个OpenCV的IplImage * 格式的变量并使用cvCreateImage申请空间,用于存储图像。
然后将二维数组中每个像素值,赋给变量,最后直接cvSaveImage保存图像。
最后cvRealease 释放空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式