怎么获取一个小球的平均灰度值啊?

dawn520 2007-05-19 06:00:01
大家好!我想在一幅图片中识别一个小球,初步设想是把小球分割出来成为一个小图片,再将小球进行灰度化,求取平均灰度值后二值化。对这个想法的可行性有意见的感谢留言啊!
//////////////////////////////////////////////////////////////////
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
主要想求教怎么获取平均灰度值啊?
我先定义了int graylevel;打算把平均灰度值赋值给它
在灰度化函数中定义如下
int sum=0;
int nWidth=ds.dsBm.bmWidth; //获取窗口宽度赋值给nWidth
int nHeight=ds.dsBm.bmHeight; //获取窗口高度赋值给nHeight
int nSize=nWidth*nHeight;
for(i=0;i<nColors;i++)///开始灰度化
{
long ISquareSum=pRGB[i].rgbRed*pRGB[i].rgbRed
+pRGB[i].rgbGreen*pRGB[i].rgbGreen
+pRGB[i].rgbBlue*pRGB[i].rgbBlue;
int nGray=(int)sqrt(((doubleISquareSum)/3);

pLP->palPalEntry[i].peRed=nGray;
pLP->palPalEntry[i].peGreen=nGray;
pLP->palPalEntry[i].peBlue=nGray;
pLP->palPalEntry[i].peFlags=0;

sum=sum+nGray;
}
graylevel=sum/nSize;
这样对不?
//////////////////////////////////////////////////////////////////
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
还有我想把graylevel在编辑框里显示出来,用
m_Edit_GrayLevel=_T(graylevel);
UpdateData(false);对不?
这里我挺糊涂的是:_T(graylevel)中的graylevel我定义的是int类型的,一定要是char型的吗?谢谢阿
//////////////////////////////////////////////////////////////////
谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢


...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawn520 2007-05-24
  • 打赏
  • 举报
回复
谢谢rover和suyouxin(努力承担更多的责任),由于换了个思路,这个方法就没有继续尝试,还是很感谢两位阿,我第一次在这发帖子,不知道怎么加分数阿,以后会了以后一定加阿,谢谢!
rover___ 2007-05-23
  • 打赏
  • 举报
回复
平均灰度值:计算方法感觉对。
灰度值的取值范围是:0-255没有其他灰度了
所以char型int型都可以表示灰度,如果类定义中类型那样,就没法说了。
dawn520 2007-05-20
  • 打赏
  • 举报
回复
suyouxin(努力承担更多的责任) ,能具体讲一下吗?谢谢
suyouxin 2007-05-20
  • 打赏
  • 举报
回复
UP,算法不知道。。

有个思路,把RGB格式的先转换为YUV格式,Y就是灰度。。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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