繁体   English   中英

使用qt显示灰度图像

[英]display grayscale image using qt

您好,我想使用qt显示灰度图像。 我的问题是当我有图像时

QRgb pixel=imagef->pixel(i,j);
int color= qGray(pixelfft);

然后我进行一些修改,然后将像素结果返回到要显示灰度的图像。 我做到了,这与我的源中的彩色图像一起工作

imagef-> setPixel(i,j,qRgb(x,x,x));

但是当我选择白色和黑色图像时,我会进行处理,当我显示它时,这种方法就无法使用

imagef-> setPixel(i,j,qGray(qRgb(x,x,x)));

如何找到如何在任何类型的图像源中显示灰度图像? 请帮我。

看来您的灰度图像具有与RGBARGB不同的格式。 请注意,setPixel的签名为

void QImage::setPixel(int x, int y, uint index_or_rgb)

RGBARGB ,该值将是ARGB值,在单色或索引中将是颜色索引。

如果您的图像已经是灰度图像,我看不到为什么要对其进行处理。 因此就做

switch(image.format())
{
   case Qimage::Indexed:
        //drawing in indexed is not possible
        image = make_gray_indexed_processing(image);
        break;
   case QImage::Format_RGB32:
   case QImage::Format_ARGB32:
      image = make_gray_rgb_processing(image);
      break;

   case QImage::Format_Mono :
   case QImage::Format_Mono_LSB :
      //do nothing
      break;
   default:
      //out of scope of answer
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM