社区
图形处理/算法
帖子详情
灰度图像的保存?
yangyunlong
2006-08-04 10:47:05
有unsigned char *bBuf ,是256级灰度图像数据,已知width,height,请问如何将其保存位一个灰度的bmp,保存后的文件属性里[颜色表示:灰度级 比特深度:8]
...全文
584
6
打赏
收藏
灰度图像的保存?
有unsigned char *bBuf ,是256级灰度图像数据,已知width,height,请问如何将其保存位一个灰度的bmp,保存后的文件属性里[颜色表示:灰度级 比特深度:8]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pomelowu
2006-08-08
打赏
举报
回复
http://www.yesky.com/322/195322.shtml
256色总是有调色版的。。。你可以读一幅属性为“[颜色表示:灰度级 比特深度:8]”的256色位图的位图数据前的部分,和你写入的部分对比下,看看差距在什么地方
yangyunlong
2006-08-07
打赏
举报
回复
我上次写了一个,当时存完发现保存后的文件属性里是 [颜色表示:调色 比特深度:8],而不是[颜色表示:灰度级 比特深度:8]请各位帮忙看看。
BOOL SaveModel(CString strFileName, unsigned char *lpDIBBits, LONG lWidth, LONG lHeight)
{
BITMAPFILEHEADER bmfHdr;
CFile file;
if (!file.Open(strFileName, CFile::modeCreate |
CFile::modeReadWrite | CFile::shareExclusive, NULL))
{
return FALSE;
}
DWORD dwDIBSize;
BITMAPINFO* pBitmapInfo ;
pBitmapInfo = NULL ;
unsigned int bitmapInfoSize= 0 ;
unsigned short* palColorIx = NULL;
bitmapInfoSize = sizeof(BITMAPINFO)+ 255*sizeof(unsigned short);
pBitmapInfo = (BITMAPINFO *) new BYTE[bitmapInfoSize];
pBitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pBitmapInfo->bmiHeader.biPlanes = 1;
pBitmapInfo->bmiHeader.biBitCount = 8;
pBitmapInfo->bmiHeader.biCompression = BI_RGB;
pBitmapInfo->bmiHeader.biSizeImage = 0 ;
pBitmapInfo->bmiHeader.biXPelsPerMeter= 0;
pBitmapInfo->bmiHeader.biYPelsPerMeter= 0;
pBitmapInfo->bmiHeader.biClrUsed = 0;
pBitmapInfo->bmiHeader.biClrImportant = 0;
pBitmapInfo->bmiHeader.biWidth = lWidth;
pBitmapInfo->bmiHeader.biHeight = lHeight;
palColorIx = (unsigned short*)&pBitmapInfo->bmiColors[0];
for (int i = 0 ; i < 256 ; i++)
palColorIx[i] = (unsigned short)i;
bmfHdr.bfType =((WORD) ('M' << 8) | 'B');
dwDIBSize =sizeof(BITMAPINFO)+ 255*sizeof(unsigned short)+ sizeof(PLOGPALETTE)+ 256 * sizeof(PALETTEENTRY);
DWORD dwBmBitsSize;
dwBmBitsSize = WIDTHBYTES(lWidth*8) * lHeight;
dwDIBSize += dwBmBitsSize;
bmfHdr.bfSize = dwDIBSize + sizeof(BITMAPFILEHEADER);
bmfHdr.bfReserved1 = 0;
bmfHdr.bfReserved2 = 0;
bmfHdr.bfOffBits = (DWORD)sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)+ sizeof(PLOGPALETTE)+ 256 * sizeof(PALETTEENTRY);
pBitmapInfo->bmiHeader.biSizeImage = dwBmBitsSize ;
unsigned int un32LoopI;
PLOGPALETTE pLogPalette;
pLogPalette = (PLOGPALETTE)new BYTE[sizeof(LOGPALETTE) + 256 * sizeof(PALETTEENTRY)];
pLogPalette->palNumEntries = 256;
pLogPalette->palVersion = 0x300;// version number defined by Windows (must be 0x300)
for (un32LoopI = 0 ; un32LoopI < 256 ; un32LoopI++)
{
pLogPalette->palPalEntry[un32LoopI].peRed = (BYTE)un32LoopI;
pLogPalette->palPalEntry[un32LoopI].peGreen = (BYTE)un32LoopI;
pLogPalette->palPalEntry[un32LoopI].peBlue = (BYTE)un32LoopI;
pLogPalette->palPalEntry[un32LoopI].peFlags = NULL;
}// 写文件头
file.Write((LPSTR)&bmfHdr, sizeof(BITMAPFILEHEADER));
file.Write((LPSTR)pBitmapInfo, sizeof(BITMAPINFOHEADER));
file.Write((LPSTR)pLogPalette, sizeof(PLOGPALETTE)+ 256 * sizeof(PALETTEENTRY));
file.WriteHuge(lpDIBBits, dwBmBitsSize);
return TRUE;
}
xyq1986
2006-08-07
打赏
举报
回复
去看看8位位图的格式吧,再用指针之类的写一下,就OK了,8位的有调色板,红蓝位置要颠倒
kencharles
2006-08-06
打赏
举报
回复
楼上的说得对!
langzi8818
2006-08-05
打赏
举报
回复
楼主想想其实很简单,把改添的添好。就是了
pomelowu
2006-08-04
打赏
举报
回复
http://blog.csdn.net/pomelowu/articles/111056.aspx#p2.6
根据文件格式,填写 BITMAPFILEHEADER BITMAPINFOHEADER 和 Color-index array就行了。Color-index array就是你那个数组。
python
保存
灰度图像
_如何使用matplotlib/numpy将数组
保存
为
灰度图像
?
本文探讨了使用matplotlib的imsave函数
保存
灰度图像
时遇到的问题。作者发现即使指定了灰度色彩映射,
保存
后的图像仍有RGBA四个通道,而非期望的灰度格式。文中提供了复现该问题的代码示例。
**MATLAB
灰度图像
保存
**
本文介绍在MATLAB中如何使用imwrite函数
保存
灰度图像
,并解释如何指定
保存
路径、图片名称及格式,同时自动调整数据范围至0-255。
OpenCV2彩色图像和
灰度图像
读取、显示、
保存
本文介绍了如何利用OpenCV2库对彩色和
灰度图像
进行读取、显示及
保存
。通过`cv.imread()`读取图片,参数1表示彩色图像,0表示
灰度图像
;使用`cv.imshow()`展示图像;使用`cv.imwrite()`
保存
图像到指定位置。示例代码展示了具体操作流程。
opencv转换
灰度图像
并
保存
本文介绍了一个使用OpenCV库将彩色图像转换为
灰度图像
的C++程序示例。程序首先读取一张彩色图像,然后将其转换为
灰度图像
,并显示和
保存
结果。该过程包括图像读取、灰度转换、图像显示和图像
保存
。
opencv:彩色图像到
灰度图像
的转换与
保存
本文介绍如何使用OpenCV将彩色图像转换为
灰度图像
,并
保存
转换后的图像。核心函数包括cvtColor用于颜色空间转换,imwrite用于图像
保存
。
图形处理/算法
19,464
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章