繁体   English   中英

如何使用OpenCV降低图像每像素的位数

[英]How can I lower the bit per pixel of image with OpenCV

我需要一张8 BPP(每像素位)的图像来学习使用张量流的图像分割。

下面是我的简短代码。

Mat Image;
Image = imread("Input.png",IMREAD_UNCHANGED);

** image synthesis process **

imwrite("C:\\Output.png", Image);

如果您对我的完整源代码感到好奇,可以看一下我之前的要求。

如果在此状态下检查图像输出的bpp,则为24。

我该怎么办?

为了给您提供信息,我已经尝试过进行CV_8UC1之类的更正,但似乎效果不佳。

您可能正在读取彩色图像,每个像素的红色,绿色和蓝色分量有三个字节。

如果只需要8位图像,则可以使用单个颜色分量。

如果需要以明智的方式对输入图像进行操作,请先将其转换为灰度

cvtColor(src, bwsrc, cv::COLOR_RGB2GRAY);

而不是读取默认格式的图像,而是读取灰度格式的图像。

Mat Image;
Image = imread("Input.png",IMREAD_GRAYSCALE);

** image synthesis process **

imwrite("C:\\Output.png", Image);

您可以检查此链接以获取有关OpenCV图像格式的详细信息: https : //docs.opencv.org/3.0-beta/modules/imgcodecs/doc/reading_and_writing_images.html

暂无
暂无

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

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