CompVision еще раз, я работаю с изображениями JPEG в моем приложении.Просто потому, что я немного знаком с MFC
и ATL
, я использовал CImage
для доступа к значениям пикселей.
Для своих нужд я рассчитываю матрицу яркости изображения во время инициализации.Функция выглядит следующим образом (Image
- это имя моего собственного класса, неважно, bright is float [] []):
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 изображений, и я не могу ждать часами, чтобы получить результаты.