1
#include "stdafx.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
Mat img = imread("Nature.jpg"); // Read image from file
Mat img_chn;
img.convertTo(img_chn,CV_16UC3);
imshow("Changed image", img_chn); //show the changed image
imshow("Original İmage", img); //show the original image
waitKey(0); // Wait until user press some key
return 0;
}
當我運行這段代碼時,我在變化的圖像窗口中看到黑屏。如果我寫CV_8UC3
而不是CV_16UC3
那麼沒有問題發生。如何在opencv中深入轉換圖像(CV_8UC3)?
我的目的是將8位圖像轉換爲16位圖像,我該怎麼辦?
謝謝,如果我想轉換爲32位什麼必須寫在這裏? img.convertTo(img_chn,CV_16UC3,###); – Berkay
如果你的意思是浮點值CV_32F,你需要這些值在[0,1]中,所以'img.convertTo(img_chn,CV_32F,1.0/255.0)'; – Miki
實際上我想表示'CV_32SC3' ... – Berkay