這篇文章主要為大家展示了“如何解決OpenCV中C++函數(shù)imread讀取圖片的問(wèn)題”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何解決OpenCV中C++函數(shù)imread讀取圖片的問(wèn)題”這篇文章吧。
今天在用OpenCV實(shí)驗(yàn)Image Pyramid的時(shí)候發(fā)現(xiàn)一個(gè)奇怪的問(wèn)題,就是利用C++函數(shù)imread讀取圖片的時(shí)候返回的結(jié)果總是空,而利用C函數(shù)cvLoadImage時(shí)卻能讀取到圖像。代碼如下:
//環(huán)境:VS2010 + OpenCV 2.3.1 #include "stdafx.h" #include#include #include #include #include using namespace cv; Mat src, dst, tmp; char* window_name = "Pyramids Demo"; int _tmain(int argc, _TCHAR* argv[]) { printf("\n Zoom In-Out demo \n"); printf("-------------------- \n"); printf("*[u]-> Zoom in \n"); printf("*[d]-> Zoom out \n"); printf("*[ESC]-> Close program \n\n"); src = imread("D:\\fruits.jpg"); if(!src.data) { printf("No data!--Exiting the program \n"); return -1; } tmp = src; dst = tmp; namedWindow(window_name,CV_WINDOW_AUTOSIZE); imshow(window_name,dst); while(true) { int c; c = waitKey(10); if((char)c == 27) { break; } if((char)c == 'u') { pyrUp(tmp,dst,Size(tmp.cols * 2,tmp.rows * 2)); printf("** Zoom In:Image x 2\n"); } else if((char)c == 'd') { pyrDown(tmp,dst,Size(tmp.cols / 2,tmp.rows / 2)); printf("**Zoom Out:Image / 2\n"); } imshow(window_name,dst); tmp = dst; } return 0; }
程序很簡(jiǎn)單,就是直接調(diào)用Imgproc中的兩個(gè)C++函數(shù)pyrUp和pyrDown來(lái)實(shí)現(xiàn)圖像金字塔,程序的詳細(xì)解釋可參見(jiàn)https://www.jb51.net/article/108378.htm。但在實(shí)現(xiàn)的過(guò)程中發(fā)現(xiàn)imread始終讀取不了圖像數(shù)據(jù)和cvLoadImage卻可以。幾經(jīng)考證,發(fā)現(xiàn)的確是由于庫(kù)關(guān)聯(lián)的問(wèn)題。也就是在Debug模式下應(yīng)該選擇帶'd'的lib,在Release模式下就選擇不帶'd'的lib。而實(shí)際我們?cè)谂渲肙penCV環(huán)境的時(shí)候往往圖方便將Debug和Release的目錄都一起加了進(jìn)去,再修改起來(lái)也比較麻煩。所以這時(shí)候最簡(jiǎn)單的辦法就是在程序的開(kāi)始加上:
#pragma comment(lib,"opencv_highgui231d.lib")
來(lái)告訴程序?qū)⒉捎肈ebug版本的庫(kù)函數(shù)。
實(shí)驗(yàn)結(jié)果如下:
以上是“如何解決OpenCV中C++函數(shù)imread讀取圖片的問(wèn)題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。