以文本方式查看主题 - 机器视觉技术论坛|工业图像处理技术论坛 (http://www.jqsj.com/forum/index.asp) -- 【大恒摄像机】 (http://www.jqsj.com/forum/list.asp?boardid=8) ---- 能否将m_pRawBuffer直接显示? (http://www.jqsj.com/forum/dispbbs.asp?boardid=8&id=1294) |
-- 作者:pinsan -- 发布时间:2007-7-16 15:18:33 -- 能否将m_pRawBuffer直接显示? 图像处理时要求256色,能否直接将m_pRawBuffer显示或经过简单的转换后以256色显示?不想转换为24位后再转为8位,也就是不用ConvertBayer2RGB()转换,能否实现?谢谢! |
-- 作者:xyc79323 -- 发布时间:2007-7-19 19:20:13 -- 可以 我用opencv 可实现 |
-- 作者:菜鸟 -- 发布时间:2007-7-24 17:20:34 -- 如果你是灰度图像,直接显示就可以了,不需要任何转换。但是如果是彩色的,直接显示m_pRawBuffer,会是格状的明暗交替的图像,是不能用的。不过我没有试过用opencv转换,是用的那个函数? |
-- 作者:pinsan -- 发布时间:2007-7-25 18:54:24 -- 如何采集灰度图像啊?!有设置参数吗?我只要灰度图就可以,摄像头是HV1302的 |
-- 作者:菜鸟 -- 发布时间:2007-7-31 17:55:24 -- HV1302的m_pRawBuffer就是灰度数据,每个像素占一个字节。 |
-- 作者:指间沙 -- 发布时间:2007-8-3 20:44:07 -- 你的问题解决了吗?我和你有相同的问题,我的QQ为187214098,有问题可以一起探讨. |
-- 作者:veilking -- 发布时间:2007-8-8 18:24:44 -- 不通过 ConvertBayer2RGB 用 CDC 绘图函数 直接采用 m_pRawBuffer 就可以显示灰度图像,主要代码如下: 不知对你是否有用,^_^ 1.初始化BITMAPINFO { //m_pBmpInfo即指向m_chBmpBuf缓冲区,用户可以自己分配BTIMAPINFO缓冲区 m_pBmpInfo = (BITMAPINFO *)m_chBmpBuf; // 初始化BITMAPINFO 结构,此结构在保存bmp文件、显示采集图像时使用 m_pBmpInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); // 图像宽度,一般为输出窗口宽度 m_pBmpInfo->bmiHeader.biWidth = m_OutSizeX; // 图像宽度,一般为输出窗口高度 m_pBmpInfo->bmiHeader.biHeight = m_OutSizeY; /* * 以下设置一般相同, * 对于低于8位的位图,还应设置相应的位图调色板 */ m_pBmpInfo->bmiHeader.biPlanes = 1; m_pBmpInfo->bmiHeader.biBitCount = 8;//8位灰度图像 m_pBmpInfo->bmiHeader.biCompression = BI_RGB; m_pBmpInfo->bmiHeader.biSizeImage = 0; m_pBmpInfo->bmiHeader.biXPelsPerMeter = 0; m_pBmpInfo->bmiHeader.biYPelsPerMeter = 0; m_pBmpInfo->bmiHeader.biClrUsed = 0; m_pBmpInfo->bmiHeader.biClrImportant = 0; //以下内容一定要有,否则显示图像不正常 for(i=0; i<256; i++) { m_pBmpInfo->bmiColors[i].rgbBlue = i; m_pBmpInfo->bmiColors[i].rgbGreen = i; m_pBmpInfo->bmiColors[i].rgbRed = i; m_pBmpInfo->bmiColors[i].rgbReserved = 0; } /* * 分配原始图像缓冲区,一般用来存储采集图像原始数据 * 一般图像缓冲区大小由输出窗口大小和视频格式确定。 */ m_pRawBuffer = new BYTE[m_nMaxWidth * m_nMaxHeight]; if(m_pRawBuffer == NULL) return FALSE; return TRUE; } 2.直接用m_pRawBuffer显示图像 ::StretchDIBits(dc, 0,0,m_OutSizeX, m_OutSizeY, 0,0,m_OutSizeX, m_OutSizeY, m_pRawBuffer,m_pBmpInfo, DIB_RGB_COLORS,SRCCOPY); 注:m_OutSizeX, m_OutSizeY 为输出显示图像大小。 [此贴子已经被作者于2007-8-8 18:29:11编辑过]
|