Libraw - Как я могу получить изображение только с красными пикселями, используя Libraw? - PullRequest
0 голосов
/ 25 июня 2018

Я использую Libraw для проекта, который предназначен для работы с необработанными файлами изображений. Мне нужно реализовать функцию, которая из необработанного файла мне нужно экспортировать изображение только с красными пикселями (и другие 3 изображения для синего, зеленого и зеленого2 пикселей). Я попробовал образец 4-х каналов, но это просто дало мне картинку с черно-серой шкалой. Я попытался изменить код с этим перед экспортом изображения:

for (int c = 0; c < S.iwidth; c++){
    for(int r=0;r<S.iheight;r++){
        printf("Row:%d Column:%d Color:%d Max Rows:%d Max Col:%d\n",r,c,RawProcessor.COLOR(r,c),S.iheight,S.iwidth);
        //check if is a red pixel
        if(RawProcessor.COLOR(r,c)!=0){
            RawProcessor.imgdata.image[r*c][0] = 20000;
            RawProcessor.imgdata.image[r*c][1] = 0;
            RawProcessor.imgdata.image[r*c][2] = 0;
            RawProcessor.imgdata.image[r*c][3] = 0;
    }
}

Это просто дает мне изображение в градациях серого с черными точками в пикселях, которые не являются красными. Я хочу изображение, когда вы четко видите красный цвет.

Может кто-нибудь помочь мне с этой проблемой?

С наилучшими пожеланиями

...