本人小白,最近看了點數字圖像的書,為了便於圖像的分析,希望把這幅圖像的數據信息顯示在狀態欄上,但顯示的時候卻出了問題:我想讓gray的值為該副圖片的灰度值,可這個結果顯然是不對的。先貼出在Mousemove消息下的代碼如下,希望各位大神幫忙看下哪裡出錯了 ,感激不盡
void CImageProcessView::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);
COLORREF gray=dc.GetPixel(point);
CString str;
str.Format("x=%d,y=%d,gray=%d",point.x,point.y,gray);
((CMainFrame*) GetParent())->m_wndStatusBar.SetWindowText(str);
}
COLORREF RGB
(
BYTE byRed, // red component of color
BYTE byGreen, // green component of color
BYTE byBlue // blue component of color
);
COLORREF 是一個 32-bit 整型數值,它代表了一種顏色,你直接轉換肯定不對。
BYTE r = GetRValue(colorrrefRGB);
BYTE g = GetGValue(colorrrefRGB);
BYTE b = GetBValue(colorrrefRGB);
獲取rgb值求平均。