簡體   English   中英

OpenCV寫入一個浮動圖像,要使用哪種轉換?

[英]OpenCV imwrite a float image, which conversion to use?

我需要在OpenCV中存儲浮動圖像。 按照@ tomriddle_1234的建議將其轉換為CV8U圖像仍會存儲黑色png。

reference.type() = 5
reference.channels() = 1
reference.depth() = 5

我如何將圖像轉換為8bit或16bit,以便imwrite可以存儲圖像,同時保持其float屬性,即:由於轉換/精度損失,存儲的圖像不會“褪色”!

imshow("5t aligned Mean", reference); //Displays the correct image
//reference.convertTo(reference, CV_8U); //Convert image to 8Bit INCORRECT
reference.convertTo(reference, CV_8U, 255.0, 1/255.0); //Correct image
imwrite(subject.c_str(), reference); //Stores a completely black png

任何建議,不勝感激!

您可以通過將每個浮動像素乘以2 ^ 16來轉換為16位。 浮點圖像的存儲值介於0-1之間

opencv將使用正常的imwrite()將16位未壓縮的內容保存在PNG和TIFF中。

(盡管我運氣不好,無法找到讀取16位jpeg的內容,但也會將它們另存為JPEG)

使用CV_NORM_MINMAX在0到255之間轉換之前對圖像進行歸一化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM