二维double型矩阵如何显示成图像

Louis_TL 2011-10-21 11:05:48
比如我有一实数型矩阵A, 大小为256*10000,如何才能显示成图像?? matlab中直接用imagesc(A), VC中如何实现该功能?
...全文
527 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天鹅梦 2011-10-21
  • 打赏
  • 举报
回复
可以申请一块BYTE类型,宽高为你矩阵维数的内存,然后对矩阵中的数值进行量化,即找出最大值,最小值,然后任一数值X按如下转换(X-min)*255/(max-min)赋给相应的BYTE型内存,然后做个调色板,就可以显示了
QQ515311445 2011-10-21
  • 打赏
  • 举报
回复
不明白,帮顶!
cczlp 2011-10-21
  • 打赏
  • 举报
回复
色深是多少, 彩色还是灰度图像, 按BMP显示, 加个图像头, double必须转为整数
Louis_TL 2011-10-21
  • 打赏
  • 举报
回复
那文件信息头结构(BITMAPINFOHEADER)中的图像biWidth ,biHeight应该设置成多少合适?
如果当矩阵大小变为256*8050时,此时申请一块BYTE类型,宽为256 高为8050的内存的话, 此时8050不是4的整数倍该怎么办?

libing64 2011-10-21
  • 打赏
  • 举报
回复
同意一楼的说法,在VC下(这里指VC6.0)没有那么只能,只能采用API进行显示,SetDIBitsToDevice函数可以实现,但是你要按照BMP位图的格式信息,填写里面的参数~~总之比较麻烦~~

建议你采用opencv~~
mhm0902 2011-10-21
  • 打赏
  • 举报
回复
用Opencv吧,
	Mat frame = Mat(256,10000,CV_8U);	//#define CV_8U   0
//#define CV_8S 1
//#define CV_16U 2
//#define CV_16S 3
//#define CV_32S 4
//#define CV_32F 5
//#define CV_64F 6

memccpy(frame.data,A,256*10000*sizeof(*));//*为数据类型

imshow("tld", frame);
fengbingchun 2011-10-21
  • 打赏
  • 举报
回复
用OpenCV,先将数据赋予CvMat或IplImage,然后用cvShowImage函数即可显示成图像

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧