在使用 OpenCV 對圖像的處理中,都會使用到 IplImage 資料結構,由於 OpenCV 主要針對的是電腦視覺方面的處理,因此在函數庫中,最重要的結構體就是 IplImage,IplImage 結構來源於 Intel 的另外一個函數庫 Intel Image Processing Library (IPL),該函數庫主要是針對圖像處理,IplImage 資料結構有很多的變數,IplImage 資料結構的數值大多都被專用的函數初始化,所以不太需要用到它資料結構裡面的資料,以及直接設定它資料結構的數據,以下簡單的列出 IplImage 所存到的數據資訊。
IplImage 圖像資料 |
操作環境:Windows Visual Studio 2010 C++/CLI + OpenCV 2.4.8
IplImage 資料結構定義:
int main()
{ typedef struct _IplImage
{
int nSize; /*
sizeof(IplImage) */
int ID; /*
version (=0)*/
int nChannels; /*
Most of OpenCV functions support 1,2,3 or 4 channels */
int alphaChannel;
/* ignored by OpenCV */
int depth;
/* pixel depth in bits: IPL_DEPTH_8U,
IPL_DEPTH_8S,
IPL_DEPTH_16S,IPL_DEPTH_32S, IPL_DEPTH_32F and
IPL_DEPTH_64F
are supported */
char colorModel[4]; /*
ignored by OpenCV */
char channelSeq[4]; /*
ditto */
int dataOrder; /* 0
- interleaved color channels,
1 - separate color channels.
cvCreateImage can only create interleaved
images */
int origin; /* 0 - top-left origin,
1 - bottom-left origin (Windows bitmaps
style) */
int align; /* Alignment of image rows (4 or 8).
OpenCV
ignores it and uses widthStep instead */
int width; /* image width in pixels */
int height; /* image height in pixels */
struct _IplROI *roi; /* image ROI. if NULL, the whole image is
selected */
struct _IplImage *maskROI; /*
must be NULL */
void *imageId; /* ditto */
struct _IplTileInfo *tileInfo; /* ditto */
int imageSize; /*
image data size in bytes
(==image->height*image->widthStep
in case of interleaved data)*/
char *imageData; /*
pointer to aligned image data */
int widthStep; /* size of aligned image row in bytes */
int BorderMode[4]; /* ignored by OpenCV */
int BorderConst[4]; /* ditto */
char *imageDataOrigin; /*
pointer to very origin of image data
(not necessarily aligned) -
needed for correct deallocation */
}
IplImage;
|
{
IplImage *frame;
CvCapture *capture;
capture = cvCaptureFromFile(“Super.jpg”);
frame =
cvQueryFrame(capture);
textBox1->Text
= "Size :
"+frame->nSize+"\r\n";
textBox1->Text =
textBox1->Text+"ID :
"+frame->ID+"\r\n";
textBox1->Text =
textBox1->Text+"Width :
"+frame->width+"\r\n";
textBox1->Text =
textBox1->Text+"Hight :
"+frame->height+"\r\n";
textBox1->Text =
textBox1->Text+"nChannels :
"+frame->nChannels+"\r\n";
textBox1->Text =
textBox1->Text+"Depth :
"+frame->depth+"\r\n";
textBox1->Text =
textBox1->Text+"WidthStep :
"+frame->widthStep+"\r\n";
textBox1->Text =
textBox1->Text+"DataOrder :
"+frame->dataOrder+"\r\n";
textBox1->Text =
textBox1->Text+"Origin :
"+frame->origin+"\r\n";
textBox1->Text =
textBox1->Text+"Align :
"+frame->align+"\r\n";
|
相關網址:
※ 在 Windows XP Visual Studio 2010 安裝 OpenCV 2.4
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 第一個程式
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 使用 WebCam
※ 在 Windows XP Visual Studio 2010 安裝使用 FFmpeg 函數庫
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 使用 WebCam
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 顯示 IPCam 串流視頻
※ 在 Windows XP Visual Studio 2010 使用 OpenCV 2.4 導入屬性工作表文件檔
※ 在 Windows XP Visual Studio 2010 使用 Windows From OpenCV 2.4 配置
※ 在 OpenCV 2.4 的 IplImage 資料結構
※ OpenCV 2.4 的坎尼圖像邊緣檢測(Canny Edge Detection) – Canny 函數
※ OpenCV 2.4 的霍夫直線偵測轉換 – HoughLines 函數
※ OpenCV 2.4 的霍夫直線偵測轉換 – HoughLinesP 函數
※ OpenCV 2.4 的人臉偵測(Face Detection)– cvHaarDetectObjects 函數
※ OpenCV 2.4 的物件偵測(Object Detection)– cvHoughCircles 函數
※ OpenCV 2.4 的物件追蹤(Object Tracking)– cvMoments 函數
2015 年 9月 14日 天氣報告
氣溫:27.7度 @ 21:00
相對濕度:百分之 77%
天氣:天色大致良好
沒有留言:
張貼留言