Just My Life & My Work

對於曾經是一般電腦使用者的我,還不會自己寫一個轉檔程式時,最想用的是PhotoImpact這一類軟體來替我轉檔,如今會使用OpenCV來寫程式,只要短短的幾行,我就可以輕而易舉地轉換影像類型

OpenCV支援的影像格式有BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM,SR, RAS, TIFF,只要有這些類型的影像檔,就可以在這些類別中互轉。

/**
	Theme: Transform Image Type
	compiler: Dev C++ 4.9.9.2
	Date: 100/05/14
	Author: ShengWen
	Blog: https://cg2010studio.wordpress.com/
*/
#include<iostream>
#include <cv.h>
#include <highgui.h>
using namespace std;
int main(){
    IplImage *image;
    char inFileName[10],outFileName[10];
    cout<<"檔案名稱+副檔名\n-> ";
    cin>>inFileName;
    cout<<"轉檔名稱+副檔名(bmp,jpg,png,ppm)\n-> ";
    cin>>outFileName;
    if((image=cvLoadImage(inFileName, 0))!=0){//開啟影像
        cvSaveImage(outFileName, image);//儲存影像
    }
    system("pause");
    return EXIT_SUCCESS;
}

這裡需注意的是cvLoadImage()這個函式,可以讀取不同格式的影像檔,而它的用法為:

IplImage* cvLoadImage(“讀取圖檔名稱",參數);

參數有:

CV_LOAD_IMAGE_UNCHANGED -1        原圖影像
CV_LOAD_IMAGE_GRAYSCALE 0         灰階
CV_LOAD_IMAGE_COLOR 1             彩色
CV_LOAD_IMAGE_ANYDEPTH 2          任何彩度
CV_LOAD_IMAGE_ANYCOLOR 4          任何彩色

程式中的參數為0,因此轉存後的影像必為灰階影像。

另外需瞭解的是cvSaveImage()這個函式,可以儲存不同格式的影像檔,而它的用法為:

cvSaveImage(“儲存圖檔名稱",IplImage資料結構);

直接將影像儲存在當前資料夾中。

參考:GUI介面的製作-轉檔程式的實作

Comments on: "[OpenCV] 轉換影像類型 (Transform Image Type)" (1)

  1. 未知 的大頭貼

    […] 昨天已經寫過轉換影像類型這一篇網誌,然而那只能一個檔一個檔慢慢轉換,如今我有成千上萬張相片,想要一次搞定資料夾內的影像檔,該怎麼做呢? […]

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲