1. 程式人生 > >(17)圖片尺寸的縮放

(17)圖片尺寸的縮放

對圖片尺寸的變化,主要是放大和縮小。

具體知識點看這個部落格:https://www.cnblogs.com/wyuzl/p/6294275.html

程式碼看這個部落格:https://www.cnblogs.com/skyfsm/p/6876732.html

=======================================================

resize程式碼實現:

 1 #include<opencv2\opencv.hpp>   
 2 #include<opencv2\highgui\highgui.hpp>
 3 
 4 using namespace
std; 5 using namespace cv; 6 7 //圖片的縮小與放大 8 int main() 9 { 10 Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg"); 11 imshow("原始圖", img); 12 13 Mat dst = Mat::zeros(300, 300, CV_8UC3); //我要轉化為512*512大小的 14 resize(img, dst, dst.size()); 15 16 imshow("尺寸調整之後", dst); 17 18 waitKey(0
); 19 20 }

結果展示:

 

 =========================================================

 1 //第二種,填入你要縮小或者放大的比率。
 2 
 3 #include<opencv2\opencv.hpp>   
 4 #include<opencv2\highgui\highgui.hpp>
 5 
 6 using namespace std;
 7 using namespace cv;
 8 
 9 //圖片的縮小與放大
10 int main()
11 {
12
Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg"); 13 imshow("原始圖", img); 14 15 Mat dst; 16 resize(img, dst, Size(), 0.5, 0.5);//我長寬都變為原來的0.5倍 17 18 imshow("尺寸調整之後", dst); 19 20 waitKey(0); 21 22 }

=====================================================

結果展示

===============================================

==============================================================

接下來說說影象金字塔

說白了,影象金字塔就是用來進行影象縮放的,乾的事情跟resize函式沒兩樣,那我們還需要學它嗎?我覺得有必要的額,因為在學習卷積神經網路中會遇到這個名詞,所以都學一學吧,搞圖形都繞不過他!

具體知識點,看這個部落格:https://www.cnblogs.com/skyfsm/p/6876732.html

============================================================

下面就是用的影象金字塔的知識,弄的圖片

=====================================

 1 //下面給出OpenCV中pryUp和pryDown的用法。
 2 
 3 #include<opencv2\opencv.hpp>   
 4 #include<opencv2\highgui\highgui.hpp>
 5 
 6 using namespace std;
 7 using namespace cv;
 8 
 9 //影象金字塔
10 int main()
11 {
12     Mat img = imread("C:\\Users\\32829\\Desktop\\aa.jpg");
13     imshow("原始圖", img);
14 
15     Mat dst, dst2;
16     pyrUp(img, dst, Size(img.cols * 2, img.rows * 2)); //放大一倍
17     pyrDown(img, dst2, Size(img.cols * 0.5, img.rows * 0.5)); //縮小為原來的一半
18     imshow("尺寸放大之後", dst);
19     imshow("尺寸縮小之後", dst2);
20 
21     waitKey(0);
22 
23 }

===========================================

下面是結果展示

============================================

================================================================

總結:

    
顯然,無論是放大還是縮小,影象都變得模糊了,這就是他的致命缺點。

個人認為,要做縮放就用resize函式吧,畢竟方便太多而且影象不會變模糊!