百度到的代碼:
if (dlgOpenPic->Execute()) // 使用TOpenDialog控制元件選擇檔案
{
IplImage *pImage = cvLoadImage(dlgOpenPic->FileName.c_str(),CV_LOAD_IMAGE_COLOR) ; // 使用OPENCV函式載入圖片
if(pImage == NULL)
return ;
cvFlip(pImage) ;
int nWidth = pImage->width ;
int nHeight = pImage->height ;
imgShowPic->Picture->Bitmap->Width = nWidth ;
imgShowPic->Picture->Bitmap->Height = nHeight ;
imgShowPic->Picture->Bitmap->PixelFormat = pf24bit ; // 設定圖片為24色顯示
memcpy(imgShowPic->Picture->Bitmap->ScanLine[nHeight - 1],pImage->imageData,pImage->imageSize) ; // 將載入的圖片資料寫入Timage控制元件中。
cvReleaseImage(&pImage); // 最后要釋放這個句柄。
}
這樣就可以顯示任何格式的圖片了。
——————————
老概看看這個代碼有沒有問題?
cvFlip(pImage) ;
memcpy(imgShowPic->Picture->Bitmap->ScanLine[nHeight - 1],pImage->imageData,pImage->imageSize) ;
這兩行代碼什么原理?ScanLine[nHeight - 1]是最低地址?BMP掃描線是反向的?
uj5u.com熱心網友回復:
BCB中使用opencv顯示圖片
zh516846937 2011-11-23 17:35:36 2771 收藏
文章標簽: 作業 image null
著作權
新建一個工程,向工程中添加一個Timage控制元件(dlgOpenPic),一個TOpenDialog控制元件(dlgOpenPic),一個按鈕。
在頭檔案中加入以下陳述句:
#include <assert.h> // 這是用OPENCV必須要用到的檔案
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#pragma link "cv200.lib"
#pragma link "cxcore200.lib"
#pragma link "highgui200.lib"
這是加入所需的頭檔案和LIB庫,然后再將cv200.dll,cxcore200.dll,highgui200.dll放入作業目錄中。
這些做完之后就要設定工程了:
配置作業:
Project->Options->"Directories/Conditionals"
Conditionals:_DEBUG;SKIP_INCLUDES (添加SKIP_INCLUDES)。
這些都設定好之后就是寫代碼了。
在按鈕的單擊事件上添加如下代碼:
if (dlgOpenPic->Execute()) // 使用TOpenDialog控制元件選擇檔案
{
//代碼在主樓
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/206148.html
標籤:基礎類
