Opencv——圖像金字塔與圖像尺寸縮放

主要講解

1、resize()函數調用

函數定義:
函數定義
調用方式:

resize(srcImage, dstImage, Size(64, 128)); //對圖片進行修改
resize(srcImage, dstImage, Size(), 0.5, 0.5);

第6個參數的含義:

INTER_NEAREST:最鄰近插值			(放大好用)
INTER_AREA:區域插值(利用像素區域關系的重采樣插值)		(縮小好用)
INTER_CUBIC:三次樣條插值(超過4x4像素鄰域內的雙三次插值)
INTER_LANCZOS4:Lanczos插值(超過8x8像素鄰域的Lanczos插值)

效果展示

將圖像用4種方法先縮小6倍再放大6倍得到的效果:
1
2

代碼展示

#include <opencv2/opencv.hpp>
#include <iostream>
#include "windows.h"
#include <stdio.h>
#include "My_ImageProssing_base.h"using namespace cv;
using namespace std;
/************修改圖片大小示例**********************/
int main()
{Mat srcImage = imread("D:\\opencv_picture_test\\趣圖景圖\\test12.jpg");//打開原圖Mat dstImage1, dstImage2, dstImage3, dstImage4;          //目標圖Mat tmpImage = srcImage.clone();		//深復制imshow("未矯正過的圖像", srcImage);//顯示未矯正的原圖//由于指定縮放的比例,Size()直接給,后面就分別是x、y方向的縮放比例resize(tmpImage, dstImage1, Size(), 0.5, 0.5, INTER_NEAREST);resize(tmpImage, dstImage2, Size(), 0.5, 0.5, INTER_AREA);resize(tmpImage, dstImage3, Size(), 0.5, 0.5, INTER_CUBIC);resize(tmpImage, dstImage4, Size(), 0.5, 0.5, INTER_LANCZOS4);for (int i = 0;i < 5;i++){resize(dstImage1,dstImage1, Size(), 0.5, 0.5, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 0.5, 0.5, INTER_AREA);resize(dstImage3, dstImage3, Size(), 0.5, 0.5, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 0.5, 0.5, INTER_LANCZOS4);}for (int i = 0;i < 5;i++){resize(dstImage1, dstImage1, Size(), 2, 2, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 2, 2, INTER_AREA);resize(dstImage3, dstImage3, Size(), 2, 2, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 2, 2, INTER_LANCZOS4);}resize(dstImage1, dstImage1, Size(), 2, 2, INTER_NEAREST);resize(dstImage2, dstImage2, Size(), 2, 2, INTER_AREA);resize(dstImage3, dstImage3, Size(), 2, 2, INTER_CUBIC);resize(dstImage4, dstImage4, Size(), 2, 2, INTER_LANCZOS4);//resize(srcImage, dstImage, Size(64, 128)); //對圖片進行修改//resize(input,output,dSize( , ),fx,fy,插值方式);//INTER_NEAREST:最鄰近插值			(放大好用)//INTER_AREA:區域插值(利用像素區域關系的重采樣插值)		(縮小好用)//INTER_CUBIC:三次樣條插值(超過4x4像素鄰域內的雙三次插值)//INTER_LANCZOS4:Lanczos插值(超過8x8像素鄰域的Lanczos插值)imshow("最鄰近插值", dstImage1);imshow("區域插值", dstImage2);imshow("三次樣條插值", dstImage3);imshow("Lanczos插值", dstImage4);waitKey(0);return 0;
}

2、pyrUp()、pyrDown()函數調用

pyrUp()(放大)

函數定義:
函數定義
第4個參數不用管它。
調用方式:

pyrUp(srcImage,dstImage, Size(srcImage.cols * 2, srcImage.rows * 2));

pyrDown()(縮小)

函數定義:
函數定義
第4個參數不用管它。
調用方式:

pyrDown(srcImage,dstImage, Size(srcImage.cols / 2, srcImage.rows / 2));

原理講解

1、高斯金字塔
金字塔
1
2
在縮放的過程中難免會造成信息的丟失,為了彌補信息的丟失,產生了拉普拉斯金字塔
2、拉普拉斯金字塔
(G:Gauss L:Laplace)

運算過程圖解:
運算過程
離散化的5*5高斯內核:
高斯內核

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java nature_Java中BufferedReader和scanner的對比 - nature

原地址&#xff1a;http://blog.sina.com.cn/s/blog_5fd837410100rtwk.html Scanner 和BufferedReader同樣能實現將鍵盤輸入的數據送入程序&#xff0c; import java.io.*; import java.util.Scanner; public class C { public static void main(String []args) throws IOExcep…

13-Canny邊緣檢測

Canny邊緣檢測主要思路步驟如下&#xff1a; 1&#xff0c;使用高斯濾波器&#xff0c;以平滑圖像&#xff0c;濾除噪聲 2&#xff0c;計算圖像中每個像素點的梯度強度和方向 3&#xff0c;應用非極大值抑制&#xff0c;以消除邊緣檢測帶來的雜散響應 4&#xff0c;應用雙閾值檢…

c# uri.host_C#| Uri.IsHexEncoding()方法與示例

c# uri.hostUri.IsHexEncoding()方法 (Uri.IsHexEncoding() Method) Uri.IsHexEncoding() method is a static method or Uri class. Which is used to return that given string is hex-encoded or not? If the given string is hex coded then it returns true otherwise it…

一位老鳥對 23 種設計模式的有趣見解(轉)

在網絡上流暢很廣的一篇舊文&#xff0c;暫時沒找到原作者&#xff0c;目前所看到的最早轉載時間是 2005 年 2 月 28 日。作者用輕松的語言&#xff0c;形象解釋了 23 種模式&#xff0c;有很好的啟發作用。創建型模式 1、FACTORY—追MM少不了請吃飯了&#xff0c;麥當勞的雞翅…

微機原理——移位指令

例題 思路 選擇移位語句&#xff0c;右移&#xff0c;將AL移出的送入DX左端&#xff0c;將BL移出的送入DX左端。循環八次 MOV AL,01100101B; MOV BL,11011010B; XOR DX,DX;兩個值相同&#xff0c;異或結果為0。等效&#xff1a;MOV DX,0 MOV CX,8;count L1: SHR AL,1;邏輯右…

14-圖像金字塔

由第一個圖可知&#xff0c;圖像金字塔這無非就是對圖像進行放大和縮小罷了 1&#xff0c;高斯金字塔 向下采樣方法(縮小)&#xff0c;越采樣越小&#xff0c;即從金字塔底部向上采樣 cv2.pyrDown(img) 向上采樣方法(放大)&#xff0c;越采樣越大&#xff0c;即從金字塔頂…

JAVA和javascrito_JAVA 和JavaScript的split方法異同

Split的方法很常用&#xff0c;除了str.split("regex")&#xff0c;其實還可以多傳一個參數&#xff1a;str.split("regex", limit)。但是要注意&#xff0c;JavaScript和java的split中limit參數作用是不同的。簡單說&#xff0c;JavaScript中&#xff0c;…

如果__name__ =='__main__':在Python中怎么辦?

In order to understand the details of __name__ variable and the if condition, let us go through a simple exercise. Run a simple python file with just the following lines and run the file as python3 code, 為了了解__name__變量和if條件的詳細信息&#xff0c;讓…

Eclipse C/C++開發環境搭建

1 Eclipse的安裝 到http://java.sun.com/j2se/1.5.0/download.jsp 下載JRE安裝&#xff1b; 到http://eclipse.org下載Eclipse安裝。&#xff08;這兒可以下載Java版本的&#xff0c;也可以下載C/C 版本的&#xff09; 2 對于下載的Java版本或著只下載Eclipse IDE的&#xff0c…

微機原理——尋址方式總結

一、操作數的尋址方式 立即尋址方式 格式: 操作碼 數字表達式&#xff08;將數據送入寄存器中&#xff09; 源操作數可以是8位也可以是16位。 MOV AH, F5H &#xff08;字節操作&#xff09; F5H稱為立即數(8位操作數) MOV AL, 8AH &#xff08;字節操作&#xff09; 8AH稱為…

15-輪廓檢測

邊緣是零零散散的&#xff0c;而輪廓是一個整體 cv2.findContours(img,mode,method) img&#xff1a;輸入圖像對象名稱 mode&#xff1a;輪廓檢索模式 RETR_EXTERNAL&#xff1a;只檢索最外面的輪廓 RETR_LIST&#xff1a;檢索所有的輪廓&#xff0c;并將其保存到一條鏈表當中…

拋硬幣仿真實驗java_探索HyperLogLog算法(含Java實現)

引言HyperLogLog算法經常在數據庫中被用來統計某一字段的Distinct Value(下文簡稱DV)&#xff0c;比如Redis的HyperLogLog結構&#xff0c;出于好奇探索了一下這個算法的原理&#xff0c;無奈中文資料很少&#xff0c;只能直接去閱讀論文以及一些英文資料&#xff0c;總結成此文…

kotlin鍵值對數組_Kotlin程序以升序對數組進行排序

kotlin鍵值對數組Given an array, we have to sort its elements in ascending order. 給定一個數組&#xff0c;我們必須按升序對其元素進行排序。 Example: 例&#xff1a; Input:arr [10, 20, 5, 2, 30]Output:sorted array (Ascending Order): [2, 5, 10, 20, 30]在Kotl…

微機原理——總線和時序

前提 8088有兩個組態&#xff1a; 最大組態和最小組態&#xff0c;通過引腳MN/MX*的電平決定組態。&#xff08;*表示低電平有效&#xff09; 兩種組態沒有本質區別。 8088的引腳&#xff1a; 引腳可分為下面幾種類別&#xff1a; 1、數據和地址引腳 2、讀寫控制引腳 3、中斷…

PHP站內搜索:多關鍵字查找,加亮顯示

1、SQL語句中的模糊查找LIKE條件一般用在指定搜索某字段的時候, 通過"% _" 通配符的作用實現模糊查找功能&#xff0c;通配符可以在前面也可以在后面或前后都有。搜索以PHP100開頭&#xff1a; SELECT * FROM teble WHERE title LIKE PHP100% 搜索以PHP100結束&…

16-模板匹配

cv2.matchTemplate(img,template,cv2.TM_SQDIFF) 參數一&#xff1a;原圖圖像對象名稱 參數二&#xff1a;模板圖像對象名稱 參數三&#xff1a;差別程度的計算方法(六選一推薦使用帶歸一化的) 模板匹配和卷積原理很像&#xff0c;模板從原圖像上從原點開始滑動&#xff0c;計…

對MySQL性能影響關系緊密的五大配置參數

以下的文章主要是對MySQL性能影響關系緊密的五大配置參數的介紹&#xff0c;我前幾天在相關網站看見對MySQL性能影響關系緊密的五大配置參數的資料&#xff0c;覺得挺好&#xff0c;就拿出來供大家分享&#xff0c;望你能有所收獲。(一)連接 連接通常來自Web服務器&#xff0c;…

JAVA安裝作用_jdk安裝配置及其作用

2.安裝好了就是去配置路徑了&#xff0c;我的是win7系統&#xff0c;步驟如下&#xff1a;桌面上的計算機右擊-》高級系統設置—》環境變量-》系統變量-》新建一共要新建三個變量JAVA_HOME,PATH和CLASSPATH1>JAVA_HOME:(這么寫為了方便以后可能改動jdk的安裝路徑&#xff0c…

用C#開發Windows應用程序

To develop windows application, we need to using studio and follow some steps: 要開發Windows應用程序 &#xff0c;我們需要使用studio并遵循一些步驟&#xff1a; Step 1) First of all we launch visual studio. 步驟1)首先&#xff0c;我們啟動Visual Studio。 Ste…

圖像分割——基于二維灰度直方圖的閾值處理

前言 像素灰度值僅僅反映了像素灰度級的幅值大小&#xff0c;并沒有反映出像素與鄰域的空間相關信息。 二維灰度直方圖的概念 二維灰度直方圖&#xff1a;像素的灰度值分布和鄰域的平均灰度值分布構成的二維直方圖 二維直方圖的值N(i,j) 。其中&#xff0c;if(x,y) 圖像(x,y…