CompVision再次,我正在与我的应用程序中的JPEG图像。仅仅因为我对MFC
和ATL
有点熟悉,我用CImage
来访问像素值。快速访问jpeg图像的像素值
为了我的需要,我在初始化期间计算图像的亮度矩阵。功能是这样的(Image
是我自己的类的名字,不重要的,光明是浮动[] []):
void Image::fillBrightnessMatrix(){
COLORREF val;
for(int i=0;i<width;i++){
for(int j=0; j<height;j++){
val=src.GetPixel(i,j);
bright[i][j]=rgb_to_L(val);
}
}
}
如果src为CImage
类,rgb_to_L的实例 - 一些函数计算的亮度颜色。
检查我的应用程序的性能,我发现GetPixel
是最昂贵的操作,它显著(真的,比任何其他操作慢〜700倍)减慢图像的全部初始化。 问题是,您可以建议哪个库快速访问单个像素值?我不需要任何其他操作,但加载jpeg图像和访问单个像素。性能非常重要,因为我的应用程序使用了大约3000张图像,我不能等几个小时才能得到结果。
如果您只是在JPEG比特流中解码MCU的DC值,则甚至不需要花费非常昂贵的iDCT来计算像素值--DC是平均值的YCbCr值整个MCU,您可以在图像上求和/平均,而不是每个像素。 – matja 2010-11-03 11:04:06