1. 程式人生 > >【opencv學習筆記】1、opencv縮放圖片

【opencv學習筆記】1、opencv縮放圖片

#include <opencv2\opencv.hpp>
using namespace std;
int main()
{
    //定義原圖視窗標題
    const char *windowsTitle = "原圖";
    //定義縮放後窗口標題
    const char *theZoomWindowsTitle = "縮放後圖片";
    //讀入原圖地址
    const char *ImageFilePath = "C:\\Users\\Administrator\\Documents\\visual studio 2013\\Projects\\opencvTest\\Debug\\a.jpg";
    //要儲存的縮放後地址
    const char *theZoomImageFilePath = "C:\\Users\\Administrator\\Documents\\visual studio 2013\\Projects\\opencvTest\\Debug\\b.jpg";
    //要縮放的倍數
    double ZoomMultiples = 0.314;
    //建立opencv長寬結構圖變數
    CvSize imageSize;
    
    //讀入原圖
    IplImage *test = cvLoadImage(ImageFilePath);//圖片路徑
    //縮放後圖暫時為空
    IplImage *theZoomTest = NULL;
    //讀取原圖寬高並乘以縮放比,得到縮放後的長寬
    imageSize.width = test->width * ZoomMultiples;
    imageSize.height = test->height * ZoomMultiples;
    //建立縮放後的影象資料,引數1-影象大小,引數2-影象深度,這裡從原圖獲取,引數3-影象通道數,這裡依然從原圖獲取
    theZoomTest = cvCreateImage(imageSize,test->depth,test->nChannels);
    /*影象大小變換,引數1-輸入影象,引數2-輸出影象,引數3-插值方法
    插值方法有四:
    CV_INTER_NN - 最近鄰插值
    CV_INTER_LINEAR - 雙線性插值 (預設使用)
    CV_INTER_AREA - 使用象素關係重取樣。當影象縮小時候,該方法可以避免波紋出現。當影象放大時,類似於 CV_INTER_NN 方法..
    CV_INTER_CUBIC - 立方插值.
    這個函式在功能上與Win32 API中的StretchBlt()函式類似。
    */
    cvResize(test, theZoomTest, CV_INTER_AREA);
    //建立視窗,CV_WINDOW_AUTOSIZE自適應大小
    cvNamedWindow(windowsTitle, CV_WINDOW_AUTOSIZE);
    cvNamedWindow(theZoomWindowsTitle, CV_WINDOW_AUTOSIZE);
    //在指定視窗顯示影象
    cvShowImage(windowsTitle, test);
    cvShowImage(theZoomWindowsTitle, theZoomTest);
    //等待按鍵
    cvWaitKey(0);
    //儲存縮放後圖片,引數1-路徑,引數2-影象資料
    cvSaveImage(theZoomImageFilePath,theZoomTest);
    //銷燬視窗
    cvDestroyWindow(windowsTitle);
    cvDestroyWindow(theZoomWindowsTitle);
    //釋放圖片
    cvReleaseImage(&test);
    cvReleaseImage(&theZoomTest);
    return 0;
}


相關推薦

opencv學習筆記1opencv圖片

#include <opencv2\opencv.hpp> using namespace std; int main() { //定義原圖視窗標題 const char *windowsTitle = "原圖"; //定義縮放後窗口標題 const char *

Bootstrap學習筆記1.Bootstrap介紹排版樣式表格和按鈕表單和圖片

四、表單和圖片 學習內容: .form-control 表單群組 內聯表單 表單合組 水平排列 複選框和單選框 下拉列表 校驗狀態 新增額外圖示 控制大小 圖片 .form-control .form-control <!--可定

extjs6學習筆記1.1 初始:創建項目

workspace 學習 分享 pps cnblogs log -i 學習筆記 apps 創建工作空間 sencha generate workspace /path/to/workspace 使用sencha創建應用 sencha

extjs6學習筆記1.2 初始:MVC MVVM

控制 進行 nbsp 例如 ges 如果 image 初始 互動 模型 這表示數據層。該模型可以包含數據驗證和邏輯來保持數據。在 ext js 中, 大多數模型都與一個數據存儲一起使用。 視圖 這表示用戶界面。 是用戶在屏幕上看到的組

extjs6學習筆記1.7 初始:加載第三方庫

sum pro eve owa spec expect mapview cap ply https://www.sencha.com/blog/integrating-ext-js-with-3rd-party-libraries-2/ Introduction

extjs6學習筆記1.9 初始: Mixins

另一個 筆記 extjs 微軟 mage extjs6 名稱 img pan Mixin允許我們使用一個類的函數作為另一個類的函數而不繼承。 Mixins可以使用mixins關鍵字定義,並將值指定為JSON對象,其中屬性的名稱應該是要使用的方法的名稱,屬性的值

extjs6學習筆記1.10 初始: 定義類

ria nbsp src clas -1 學習 ref 定義類 mage http://www.extjs-tutorial.com/extjs/define-new-class-in-extj

extjs6學習筆記1.11 初始: config

get 默認值 學習筆記 聲明 img image 成員 使用 set Ext JS有一個名為config的功能。 該配置允許您使用默認值聲明公共屬性,這些屬性將被其他類成員完全封裝。 通過config聲明的屬性將自動獲取get()和set()方法,如果類沒有定義這些方法。

extjs6學習筆記1.15 初始: 關於build

size hit 自己 更改 font color 第三方庫 class spa 調試版本 sencha app build --development 發布版本 sencha app build 說明: 使用第三方庫時,目前senc

extjs6學習筆記1.16 初始: 關於主題

.com platform 正常 gen 藍色 tun nod 執行 ron 打開app.json,裏面有主題設置 主題說明 theme-base 這個包是所有其他主題的基礎主題,是唯一沒有父主題的主題。 它包含Ext J

C++學習筆記C++中的程式結構輸入輸出以及語句(選擇迴圈結構)

1.C++程式結構 c++的每個程式單元由三部分組成: (1)預處理指令:#include 和#define (2)全域性宣告:在函式外部對資料型別、函式以及變數的宣告。它的有效範圍是從宣告開始到本程式單位結束。 (3)函式:包含函式首部和函式體,函式體中包含宣告語句和執行語句。

C++學習筆記C++的資料型別儲存以及基本運算

本文記錄了C++中的資料型別以及基本運算,這部分是典型的每次記每次忘型別,所以烙印在此,以便用時隨時查閱。 主要參考:http://www.runoob.com/cplusplus/cpp-data-types.html 1. C++中的資料型別 (1)基本型別 C++ 為程式

C++學習筆記對於C++語法新手常犯的錯誤

從python到C++,表示需要注意的習慣性細節還是蠻多的,作為一個不看就忘星人,還是決定老老實實把一個個易錯點記錄下來,也再一次加深印象。 首先看個樣例,來自譚浩強老師的《C++程式設計第3版》,第一章習題9: #include <iostream> using namespa

C++學習筆記如何使用Visual Studio2015進行C++專案建立

C++學習常用的編譯環境是Visual Studio系列和GCC系列,其中VS是Win下的編譯器,GCC有Win、Linux和UNIX版本,二者皆可以從網上下載到,GCC是最接近C++標準的,後續有嘗試的價值,作為初學者本文先從VS系列進行學習。 本文內容轉載自:https://www.cnbl

python學習筆記列表元組和字典的迭代

在python中,列表和元組的迭代是通過for....in....來完成的; >>> a=[1,2,3,4,5,6,7] >>> for index in a: ... print(index) ... 1 2 3 4 5

MINA學習筆記—— 1.體系結構分析[z]

前言 Apache的MINA框架是一個早年非常流行的NIO框架,它出自於Netty之父Trustin Lee大神之手。雖然目前市場份額已經逐漸被Netty取代了,但是其作為NIO初學者入門學習框架是非常合適的,因為MINA足夠的簡單,它的實現相對於Netty的難易程度,大概只有Netty的40%左右

Python學習筆記對映(Mapping)

• 通過名字來引用值得資料結構稱為對映字典(Dict)•   字典是鍵值對(key-value pair)的無序可變集合。(1)字典的操作①字典的建立• 字典中的每個元素包含兩部分:鍵和值。• 鍵和值用冒號分隔,元素間用逗號分隔,所有元素放在一對大括號中。d = {key1

MongoDB學習筆記1:在Windows上的安裝和配置

NOSQL就是Not Only SQL,MongoDB是一個很好的學習NOSQL的起點。 下載 可以在MongoDB官網選擇Community Server版本下載,但是它似乎經常沒有響應。可以在這裡直接選擇需要的版本下載,要在Windows下安裝可以直

Python學習筆記序列(Sequence)

3.1序列簡介•   資料結構是通過某種方式組織在一起的元素的集合。•   容器(Container)是一種Python的資料結構,基本上是包含其他物件的任意物件。序列和對映(如字典)是兩類主要的容器。集合(Set)也是容器型別。•   序列是最基本的資料結構,是通過對資料元

Android學習筆記onInterceptTouchEvent()onTouchEvent()

一、資源: 二、重點 首先要明確onInterceptTouchEvent()這個方法只針對於ViewGroup,事件傳到ViewGroup一般先觸發onInterceptTouchEvent(),View是沒有這個方法的具體傳遞的流程見資源1,很詳細,對理解很有幫助 onInterceptTouchE