2015年9月14日 星期一

在 OpenCV 2.4 的 IplImage 資料結構

OpenCV 2.4 IplImage 資料結構: 

在使用 OpenCV 對圖像的處理中,都會使用到 IplImage 資料結構,由於 OpenCV 主要針對的是電腦視覺方面的處理,因此在函數庫中,最重要的結構體就是 IplImageIplImage 結構來源於 Intel 的另外一個函數庫 Intel Image Processing Library (IPL),該函數庫主要是針對圖像處理,IplImage 資料結構有很多的變數,IplImage 資料結構的數值大多都被專用的函數初始化,所以不太需要用到它資料結構裡面的資料,以及直接設定它資料結構的數據,以下簡單的列出 IplImage 所存到的數據資訊。

IplImage 圖像資料
操作系統:Windows XP 32-bit 
操作環境: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;

VC++ 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%
天氣:天色大致良好

沒有留言:

張貼留言