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