日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Opencv——图像金字塔与图像尺寸缩放

發布時間:2023/12/1 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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倍得到的效果:

代碼展示

#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、高斯金字塔



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

運算過程圖解:

離散化的5*5高斯內核:

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Opencv——图像金字塔与图像尺寸缩放的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。