VC直方图统计

刚学VC图像处理不久,昨天纠结了一天计算图像的直方图,结果总是不对,发现问题有二:

1.采用读文件得到的图像数组的指针是指向图像数组的最下面一行的,从下向上的

2.数组存在补零的问题,每一行不满4个字节会补齐,如果直接采用p++的形式,就会导致读进去很多0,然后有其他的像素没有读到,统计的直方图一定是有问题的

3.应该是用无符号的字符型,即unsigned char,这样才能到255


都是一些很简单的问题,但是自己去做,总还是会有疏忽的地方。


代码如下:

unsigned char * p = (unsigned char *)dib.GetBits();
int n = dib.GetBitsPerPixel();//图像一个像素为24位
int i,j;
int m = dib.GetWidth()*dib.GetHeight();

if (m!=0)
{
for(i = 0;i<dib.GetHeight();i++)
{

for (j = 0;j<dib.GetWidth();j++)
{
m_Count[*(p+j)]++;
}
p = p+dib.BytesPerLine();

}
bflag = true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值