首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

扫描窗口图像 欢迎解答阿^c^解决方法

2012-03-18 
扫描窗口图像欢迎解答阿^c^我想对窗口中显示的图像进行扫描,源程序是这样的,编译没有问题,但是显示总是有

扫描窗口图像 欢迎解答阿^c^
我想对窗口中显示的图像进行扫描,源程序是这样的,编译没有问题,但是显示总是有问题   请教各位阿
我的图片中有一个圆(RGB值都被置为0了),我想扫描获取每个象素点的RGB值,把每行象素数最多的记下来最为最大的半径,最后求圆心
对话框显示的总是-858993460
void   CRobotFootballDoc::OnCoordinate()  
{
  m_Centre   =   m_display.DibBallcentre();
CDlgCoodinate   dlg;
dlg.m_CircleX=m_Centre.x;
dlg.m_CircleY=m_Centre.y;
dlg.DoModal();
}
///////////////////////////////////////////////////////////
CPoint   CDib::DibBallcentre()
{
CPoint                             CircleCentre;
inty=0,hight=DibHeight();        
intx=0,width=DibWidth();
        COLORREF                         pointRGB;  
int                                   MaxH=0,MaxV=0;
//         HDC                                   hDC   =   ::GetDC(NULL);  

for(y;y <=hight;y++)
{
int   sum=0;
for(x;x <=width;x++)
{
                        HDC     hDC   =   ::GetDC(0);      
pointRGB=GetPixel(hDC,x,y);    
BYTE   R=GetRValue(pointRGB);
BYTE   G=GetGValue(pointRGB);
BYTE   B=GetBValue(pointRGB);  
if(R=G=B=0)
{
                                  sum+=1;
}
::ReleaseDC(0,hDC);
}
if(MaxH <sum)
{
MaxH=sum;
CircleCentre.y=y;
}
}

for(x;x <=width;x++)
{
int   sum=0;
for(y;y <=hight;y++)
{
                        HDC     hDC   =   ::GetDC(0);  
pointRGB=GetPixel(hDC,x,y);    
BYTE   R=GetRValue(pointRGB);
BYTE   G=GetGValue(pointRGB);
BYTE   B=GetBValue(pointRGB);  
if(R=G=B=0)
{
                                  sum+=1;
}
::ReleaseDC(0,hDC);
}
if(MaxV <sum)
{
MaxV=sum;
CircleCentre.x=x;
}
}
//         ::ReleaseDC(0,hDC);
return   CircleCentre;
}
///////////////////////////////
帮我看看是什么问题啊   ,我初学VC有好多问题不知道怎么解决,希望师兄师姐多多指点阿,谢谢!

[解决办法]
if(R=G=B=0)
楼主确信是=不是==?

还有,你所说的那个数字像是为初始化的随机数,在你程序的哪部分?说清楚

热点排行