opencv實現圖片縮放


源碼

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() { // cvLoadImage( filename, -1 ); 默認讀取圖像的原通道數 // cvLoadImage( filename, 0 ); 強制轉化讀取圖像為灰度圖 // cvLoadImage( filename, 1 ); 讀取彩色圖 IplImage * srcImg=cvLoadImage("1.jpg",-1); IplImage *detImg=NULL; CvSize size; double scale=0.314; size.width=srcImg->width*scale; size.height=srcImg->height*scale;
//創建圖片並縮放 detImg=cvCreateImage(size,srcImg->depth,srcImg->nChannels);
// ·CV_INTER_NN - 最近-鄰居插補 // ·CV_INTER_LINEAR - 雙線性插值(默認方法) // ·CV_INTER_AREA - 像素面積相關重采樣。當縮小圖像時,該方法可以避免波紋的出現。當放大圖像時,類似於方法CV_INTER_NN。 // ·CV_INTER_CUBIC - 雙三次插值。) cvResize( srcImg,detImg,CV_INTER_AREA);
const char *srcWin="image";//必須是const char*類型 const char* detWin="scaled"; //創建窗口 cvNamedWindow(srcWin,CV_WINDOW_AUTOSIZE); cvNamedWindow(detWin,CV_WINDOW_AUTOSIZE); //在指定窗口中顯示圖像 cvShowImage(srcWin,srcImg); cvShowImage(detWin,detImg );
//等待按鍵事件 cvWaitKey();
const char *saveName="scaled.jpg"; //保存圖片 cvSaveImage(saveName, detImg);
//不要忘記釋放 否則會內存泄露 cvDestroyWindow(srcWin); cvDestroyWindow(detWin); cvReleaseImage(&srcImg); cvReleaseImage(&detImg); return 0; }

執行結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM