2013-04-22 42 views
-3

根據一些研究,熱圖數據不能通過OpenCV完成。還有一些其他的彩色地圖(HSV,jet ...),但不是我正在尋找的那個。 你有什麼建議顯示它們嗎?通過OpenCV的熱圖數據

+0

你指的是什麼熱圖數字?可以使用OpenCV顯示熱圖。你的問題到底是什麼? – bjoernz 2013-04-22 11:33:46

+0

@bjoernz如何顯示熱圖?我有一個圖像,我想顯示它作爲一個熱量數字。那是我的問題 – user2295733 2013-04-22 11:41:07

回答

4

可以顯示熱圖是這樣的:

cv::Mat heatmap = getHeatMap(grayscaleImage); // create your heat map from a grayscale image (CV_8UC1) 
cv::imshow("Heat Map", heatmap); // display your heat map 
waitkey(0); // make sure the application does not close immediately 

getHeatMap()會是這個樣子(未測試):

cv::Mat getHeatMap(cv::Mat input) // input is of type CV_8UC1, return is of type CV_8UC3 
{ 
    cv::Mat result(input.rows, input.cols, CV_8UC3); 
    for (int yy = 0; yy < input.rows; ++yy) 
    { 
     for (int xx = 0; xx < input.cols; ++xx) 
     { 
      int pixelValue = input.at<uchar>(yy, xx); 
      if (pixelValue < 128) { 
       result.at<cv::Vec3b>(yy, xx) = cv::Vec3b(0, 0 + 2*pixelValue, 255 - 2 * pixelValue); 
      } else { 
       result.at<cv::Vec3b>(yy, xx) = cv::Vec3b(0 + 2*pixelValue, 255 - 2 * pixelValue, 0); 
      } 
     } 
    } 
    return result; 
} 
+0

getHeatMap ??我不明白。 – user2295733 2013-04-22 11:49:34

+0

我嘗試了OpenCV的ColorMap,希望獲得熱圖,但是,是否有預定義的函數來處理這個問題? – user2295733 2013-04-22 11:50:08

+1

我不知道任何預定義的功能,但創建熱圖漸變並不困難...... – bjoernz 2013-04-22 11:57:59

0

退房cv::applyColorMap(InputArray src, OutputArray dst, int colormap),它至少可用,因爲OpenCV 2.4

這裏是this website一個小例子:

using namespace cv; 

Mat im_gray = imread("pluto.jpg", IMREAD_GRAYSCALE); 
Mat im_color; 
applyColorMap(im_gray, im_color, COLORMAP_JET);