簡體   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