【求助】关于VC++ 图像 像素获取的问题
(得不到自动扫描的像素,但是可以得到鼠标指定点的像素)void CMy3View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CString str;
HDC hDC=::GetDC(NULL); //获取屏幕DC
CPoint pt;
GetCursorPos(&pt); //得到当前鼠标所在位置
COLORREF clr= ::GetPixel(hDC,pt.x,pt.y); //获取当前鼠标点像素值
str.Format("坐标:(%d , %d),灰度值:(%d,%d,%d)",point.x,point.y,GetRValue(clr),GetGValue(clr),GetBValue(clr));
::ReleaseDC(NULL,hDC); //释放屏幕DC
m_tool.UpdateTipText(str,this);
CView::OnMouseMove(nFlags, point);
}
问题出在这:
HDC hDC=::GetDC(NULL);
// TODO: Add your command handler code here
int itop,ibottom,ileft,iright;//定义坐标X,Y和区域的4个值
int ResultS[50],ResultH[700];
int i,j,n1,n2,n3,n4;
CPoint point;
point.x=800;
point.y=400;
//int xsize=800, ysize=400;
for(i=0;i <point.y;i++) { ResultS[i]=0;}
for(i=(float)(point.y*0.25);i <(float)(point.y*0.5);i+=5)
{
ResultS[i]=0;
for (j=45;j <(float)(point.x*0.25);j++)
{
[color=#FF0000]COLORREF clr= ::GetPixel(hDC,j,i); ///??????????????通过断点检查n1的值都是255 没有任何变化
n1=GetRValue(clr);
if(n1>50 && n1 <100)
{
ResultS[i]++;
}
if(ResultS[i]>30)
{
itop=i;
}
}
}