1. 程式人生 > >VS的MFC工程輸出列印資訊以及輸出mat型別圖

VS的MFC工程輸出列印資訊以及輸出mat型別圖

1、在要列印除錯的類中加上標頭檔案

#include <io.h>//Rain  用來輸出除錯資訊

#include <fcntl.h>//Rain

2、加入一個方法

void InitConsoleWindow()//Rain

 {

int nCrt = 0;

FILE* fp;

AllocConsole();

nCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);

fp = _fdopen(nCrt, "w");

*stdout = *fp;

setvbuf(stdout, NULL, _IONBF, 0);

}

3、在類的初始化部分呼叫這個方法,比如在一個視窗內中呼叫的話,就在OnInitDialog方法中呼叫:

InitConsoleWindow();//Rain

4、在需要輸出除錯資訊的地方用printf()方法打出來,如:printf("====xdiff:%d",xdiff);

這樣,當程式執行就會彈出一個cmd控制檯,打印出除錯資訊(親測可用)

轉載自:http://blog.csdn.net/baggio1006/article/details/8217388

在mfc中要顯示opencv的圖形有以下辦法:

1、Cvvimage 類裡的函式 DrawPicToHDC( IplImage *img, UINT ID) 。現在opencv 3.0已經丟棄了這個類,需要自己去新增。

2、StretchDibBit的方法。有一個Mat 和點陣圖列數對應問題。

3、能否將opencv的圖形視窗嵌入圖形控制元件呢?

在初始化函式中加入如下程式碼。

  1. namedWindow("view", WINDOW_AUTOSIZE);  
  2. HWND hWnd = (HWND)cvGetWindowHandle("view");  
  3. HWND hParent = ::GetParent(hWnd);  
  4. ::SetParent(hWnd, GetDlgItem(IDC_STATIC_MatToPic)->m_hWnd);  
  5. ::ShowWindow(hParent, SW_HIDE);  

下面就是在需要的地方  imshow("view", cvImgScaled);

影象大小與控制元件大小匹配,橫列等比例縮放

  1. DrawMatToPic(Mat cvImg, UINT ID)  
  2. {  
  3.     CDC *pDC = GetDlgItem(ID)->GetDC();  
  4.     HDC hDCDst = pDC->GetSafeHdc();  
  5.     CRect rect;  
  6.     GetDlgItem(ID)->GetClientRect(&rect);  
  7.     int NewWidth = cvImg.cols;  
  8.     int NewHeight = cvImg.rows;  
  9.     double XScale = double(rect.right) / double(cvImg.cols);  
  10.     double YScale = double(rect.bottom) / double(cvImg.rows);  
  11.     if (XScale > YScale)  
  12.     {  
  13.         NewWidth = cvImg.cols*YScale;  
  14.         NewHeight = rect.bottom;  
  15.     }  
  16.     elseif (XScale < YScale)  
  17.     {  
  18.         NewWidth = rect.right;  
  19.         NewHeight = cvImg.rows*XScale;  
  20.     }  
  21.     cv::Size NewSize(NewWidth, NewHeight);  
  22.     cv::Mat cvImgScaled(NewSize, CV_8UC3);  
  23.     resize(cvImg, cvImgScaled, NewSize);  
  24.     imshow("view", cvImgScaled);  
  25. }  
轉載自:http://blog.csdn.net/pengjc2001/article/details/52073868