[英]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.