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

标签 c++ image opencv

我需要一张 8 BPP(每像素位数)的图像来学习使用 tensorflow 进行图像分割。

下面是我的简短代码。

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

** image synthesis process **

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

如果你对我的完整源代码感到好奇,你可以看看我之前问的内容。

如果我在这个状态下查看图像输出的bpp,是24。

我该怎么办?

供您引用,我已尝试进行 CV_8UC1 之类的更正,但似乎效果不佳。

最佳答案

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

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

如果您需要以一种合理的方式对输入图像进行操作,convert it to grayscale第一:

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

关于c++ - 如何使用 OpenCV 降低图像的每像素位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823183/

相关文章:

c++ - const char 到 SQLCHAR 错误

C++ TCHAR 数组到 wstring 在 VS2010 中不起作用

c++ - 如何在 openMP 的单个区域内并行 for 循环?

html - 为什么图像离开了页面,而没有其他内容

JavaScript:如何在不附加查询字符串的情况下重试加载图像?

python - 为什么在更改Sobel运算符的ddepth参数时输出图像有显着差异?

opencv - 来自多个 View 的运动的结构

c++ - 我是将私有(private)函数声明存储在源代码中还是 header 中?

python - 使用 reportlab 从图像创建 A4 大小的 PDF

c++ - 将所有库依赖项包含到可执行文件 Linux