0

我正在将 Libraw 用于一个关于处理原始图像文件的项目。我需要从原始文件中实现一个功能,我需要只用红色像素(以及其他 3 个蓝色、绿色和绿色 2 像素的图像)导出图像。我已经尝试过 4channels 样本,但这只是给了我一张黑色和灰度的图片。在导出图像之前,我尝试使用此修改代码:

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;
    }
}

这只是给我一个灰度图像,像素中的黑点不是红色的。当您可以清楚地看到红色时,我想要一张图像。

谁能帮我解决这个问题?

此致

4

0 回答 0