我经由ImageConver框加的基础上读进了一个灰度图,但是只做了一个简单的全局阈值的二值化处理,结果却很怪异。并没有得到与 用VC 或 Matlab 采用同样阈值处理后的二值图呢? 反而得到的是一副很不理想的黑点很多的图像(无论怎么调阈值,除非变为全白或全黑)。想请教一下是怎么回事,另外有没有专门介绍Symbain图像处理的文章呢?
谢谢指教!!!!
------解决方案--------------------------------------------------------
CFbsBitmap* bmpGray = new (ELeave) CFbsBitmap();
TUint32 pixel;
TReal gray;
TInt xPos, yPos;
TSize inSize = iBitmap->SizeInPixels();
User::LeaveIfError(bmpGray->Create(TSize(inSize.iHeight,inSize.iWidth), EGray256));
TBitmapUtil bitmapUtil(iBitmap);
TBitmapUtil bitmapUtilGray(bmpGray);
bitmapUtil.Begin(TPoint(0,0));
bitmapUtilGray.Begin(TPoint(0,0),bitmapUtil);
for (yPos=0;yPos<inSize.iHeight;yPos++)
{
for (xPos=0;xPos<inSize.iWidth;xPos++)
{
bitmapUtil.SetPos(TPoint(yPos,xPos));
bitmapUtilGray.SetPos(TPoint(yPos,xPos));
pixel = bitmapUtil.GetPixel();
TRgb rgb = TRgb(pixel);
gray = rgb.Blue()*0.11 + rgb.Green()*0.59 + rgb.Red()*0.3;
TInt64 gry(gray);
bitmapUtilGray.SetPixel(gry.GetTInt());
}
}
bitmapUtil.End();
bitmapUtilGray.End();