怎样统计出一幅灰度图的各像素点的灰度值,并将结果显示?

callofduty 2006-01-17 08:58:09
小生最近在写论文,需要统计一幅灰度图的各像素点的灰度值,以作继续研究之用。我在《VC++数字图象处理》提供的显示直方图的源代码上作了修改,但结果总显示有错误~~~哪位高手能帮一下忙,非常感谢!!!
...全文
971 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianshiqi 2006-01-19
  • 打赏
  • 举报
回复
哈哈,jpeg格式,想转换成bmp,好办,打开jpeg,直接按下PRINT键,拷贝到画图板,另存为BMP即可,然后就依次读各个点象素
LabelLee 2006-01-19
  • 打赏
  • 举报
回复
IJG库可以,jpeg压缩解压

dcmtk中的jpeg解压(基于IJG库)还可以处理12位深和16位深的jpeg图像
菜牛 2006-01-18
  • 打赏
  • 举报
回复
用IPicture接口或者CImage类就可以读入JPEG文件了,当然也可以获得HBITMAP句柄和位图数据。

至于统计,好像没有看出来有什么难点,贴你的代码看看。
syy64 2006-01-18
  • 打赏
  • 举报
回复
用photoshop;
那统计就是了,有什么问题吗?
callofduty 2006-01-18
  • 打赏
  • 举报
回复
感谢各位的指点!我的意思是将各点的灰度值以一个矩阵的形式输出,即一幅1024*768的图象就用一个1024*768的矩阵输出,矩阵元素为各点象素值。另外我拍的图片是jpeg格式,想转换成bmp格式的,但是在网上没找到这样的工具,哪位能推荐一个,多谢!!!
xianshiqi 2006-01-18
  • 打赏
  • 举报
回复
这也要看是8位,还是24位位图了,
for(LONG i=0;i<height;i++)
for(LONG j=0;j<width;j++)
{
if((pBmpInfoHeader->biBitCount)=24)
{
temp_data=(LPBYTE)p_data+OnelineBytes*i+j*3;//一定有3
Save_Gray[*temp_data]++;
}
else if((pBmpInfoHeader->biBitCount)=8)
{
temp_data=(LPBYTE)p_data+OnelineBytes*i+j;
Save_Gray[*temp_data]++;
}
}

shicheng521 2006-01-17
  • 打赏
  • 举报
回复
没有弄过图像,
帮你顶
ysc918 2006-01-17
  • 打赏
  • 举报
回复
用的就应该是直方图统计那种方法吧,代码怎么会有问题呢?调试一下,看是哪里不对,把问题找出来。
for(int i=0;i<lHeight;i++)
{
for(int j=0;j<lWidth;j++)
{
GrayValue[*(lpSrcData+(lHeight-i-1)*lWidthBytes+j)]++;
}
}
统计的思路大概就是这样吧,不知你的问题我这样理解对不对。

19,468

社区成员

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

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