OpenCV基礎篇——圖片顯示,opencv基礎篇圖片
繼上文,做好opencv的配置以後,很多時候要用的就是顯示圖片,後面要講的顯示視頻和一些測試也是建立在顯示圖片的基礎上的,本次將分享opencv通過win32控制台顯示圖片和MFC顯示圖片:
一:OpenCV+win32
建立好win32空文檔後,添加新項cpp檔案後,直接上代碼:
#include "highgui.h" //這個標頭檔很多時候都會用到,在opencv中int main(){IplImage* img = cvLoadImage( "E:\\lena.jpg");//載入圖片,用iplimage類型的指標指向檔案地址cvNamedWindow("Example", CV_WINDOW_AUTOSIZE );//命名一個example的視窗,視窗屬性為CV_WINDOW_AUTOSIZE,還有其他屬性,自己可以瞭解一下cvShowImage("Example", img );//在名字為example的視窗顯示imgcvWaitKey(0);//等待,如果不加這句,基本就是一閃而過cvReleaseImage( &img );//釋放資源cvDestroyWindow("Example");//摧毀視窗return 0;}
二:OpenCV+MFC
建立MFC項目,我選的是對話方塊,在對話方塊中拖入picture控制項,假設id號為IDC_STATIC2,和一個按鍵button,假設name為button1
//以下為showimage函數,用來在指定的id控制項中顯示圖片void CtestDlg::ShowImage(IplImage* img, UINT ID)// ID 是Picture Control控制項的ID號{ CDC* pDC=GetDlgItem(ID)->GetDC();// 獲得顯示控制項的 DC HDC hDC=pDC->GetSafeHdc();// 擷取 HDC(裝置控制代碼) 來進行繪圖操作 CRect rect; GetDlgItem(ID)->GetClientRect(&rect); CvvImage cimg; cimg.CopyOf(img); // 複製圖片 cimg.DrawToHDC(hDC,&rect); ReleaseDC(pDC);}void CtestDlg::OnBnClickedbutton1()//按鍵的響應函數{IplImage* img = cvLoadImage( "E:\\lena.jpg");ShowImage(img, IDC_STATIC2);//調用showiamge函數在picture控制項中顯示圖片cvReleaseImage( &img );//釋放}
註:我建立的名為test的項目,所以類也是test,,mfc建立過後就會出現很多代碼,而且直接運行就可以看見介面,我這裡主要給出關鍵的函數和實現,沒有在類中的聲明。。參考寫就一定會成功的。
顯示圖片就基本結束了,如果有什麼不對的,還請大家指出,相互學習
opencv讀取圖片顯示不出來
讀取圖片路徑不正確,應該寫絕對路徑
opencv讀取圖片顯示不出來
你的圖片放在相對路徑下面了沒有? 如果放了, 把cvLoadImage的第二個參數刪了試試