日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv imread

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv imread 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:opencv imread

這幾天看一個鳥程序,大量使用opencv,無奈之下略微學習一下。

從網上找了個最簡單的程序,讀取并顯示圖片,竟然不能完成顯示任務。然經努力,最終解決問題。

代碼如下:

#include "cv.h"
#include "highgui.h"
#include <string>

#pragma comment(lib, "cv210.lib")
#pragma comment(lib, "cxcore210.lib")
#pragma comment(lib, "highgui210.lib")
#pragma comment(lib, "cvaux210.lib")

using namespace cv;????????// 下面的所有cv 相關類型不用加上前綴了
using namespace std;

int main(int argc, char* argv[])
{
?string file_name = "girl2.jpg";
?Mat img = imread(file_name);????// 聲明Mat 變量并調入照片
?if(!img.data)????????// 判斷圖片調入是否成功
??return -1;????????// 調入圖片失敗則退出

?namedWindow("girl", CV_WINDOW_AUTOSIZE);?// 創建窗口,并確定其為大小不可變類型窗口
?imshow("girl", img);??????// 顯示圖片。如果你不介意窗口大小可變,可以直接注釋掉上一句。因為imshow 可以直接創建窗口
?waitKey();?????????// 等待按鍵

??? return 0;
}

運行程序,發現圖片不顯示。

調試發現

if(!img.data) // 判斷圖片調入是否成功
return -1; // 調入圖片失敗則退出

又從網上找了相同功能的代碼如下:

int main( int argc, char** argv )
{
??? IplImage* pImg;??????// 聲明IplImage指針
?
??? // 載入圖像
??? if( argc == 2 && (pImg = cvLoadImage( argv[1], 1)) != 0 )
??? {
??????? cvNamedWindow( "Image", 1 );?// 創建窗口
??????? cvShowImage( "Image", pImg );?// 顯示圖像
?
??????? cvWaitKey(0);?????// 等待按鍵
?
??????? cvDestroyWindow( "Image" );??// 銷毀窗口
??????? cvReleaseImage( &pImg );??// 釋放圖像
??????? return 0;
??? }
?
??? return -1;
}

能完成任務。

繼續調不能運行的代碼。

懷疑文件路徑有問題,改成絕對路徑,依然不行。懷疑字符串問題,改成定義string,還是不行。

忽然想起試一下Release 版本,竟然能行。

乃想到可能Release版的庫只能用于Release 版程序。

改成

#pragma comment(lib, "cv210d.lib")
#pragma comment(lib, "cxcore210d.lib")
#pragma comment(lib, "highgui210d.lib")
#pragma comment(lib, "cvaux210d.lib")

則可用于Debug 版程序,即對imread 這個函數而言,Debug版的庫只能用于Debug版的程序。

結果如下:

總結

以上是生活随笔為你收集整理的opencv imread的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。