2014-10-03 67 views
0

我想使用opencv來顯示通過指定每個像素的強度生成的簡單圖像,就像在Matlab中一樣。但是,當我展示時,結果有差距(參見下圖)。有沒有辦法顯示不顯示這些差距的圖像?像MATLAB一樣在opencv中顯示圖像

#include <stdlib.h> 
#include <stdio.h> 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
int main(int argc, char** argv) 
{ 
    n = 100; 
    m = 400; 
    cv::Mat image(n,m,CV_8UC1); 
    for(int i = 0; i < m; i++) 
     image.at<int>(10,i) = 255; 
    cv::namedWindow("Display window", WINDOW_AUTOSIZE); 
    // Show our image inside it. 
    cv::imshow("Display window", image);     
    // Wait for a keystroke in the window 
    cv::waitKey(0); 
    return 0; 
} 

Here is an example image

回答

1

如果你墊CV_8UC1,你將不得不使用:

image.at<uchar>(10,i) // not int ! 

enter image description here

int n = 100; 
int m = 400; 
cv::Mat image(n,m,CV_8UC1); 
for(int i = 0; i < m; i++) 
    image.at<uchar>(10,i) = 255; 
+0

的作品就像一個魅力,非常感謝! – dagcilibili 2014-10-03 09:01:10