当前位置: 代码迷 >> Symbian >> Symbian图像处理的疑惑?该如何处理
  详细解决方案

Symbian图像处理的疑惑?该如何处理

热度:1705   发布时间:2013-02-26 00:00:00.0
Symbian图像处理的疑惑?
我经由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();