标签:style blog http io ar color os 使用 sp
金字塔形图像处理(图像缩放)
主要用到了两个函数:pyrUp和pyrDown
下面是代码:
1 #include <opencv2\opencv.hpp> 2 #include <iostream> 3 #include <string> 4 5 #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 6 7 int MAX_KERNEL_LENGTH = 31; 8 9 using namespace std; 10 using namespace cv; 11 12 void Show(const std::string &name, const Mat &img) 13 { 14 namedWindow(name, CV_WINDOW_AUTOSIZE); 15 imshow(name, img); 16 } 17 18 int main(void) 19 { 20 Mat img = imread("lena.jpg"); 21 if (img.empty()) 22 return -1; 23 Show("Source", img); 24 Mat tmp=img.clone(); 25 Mat dst = tmp; 26 27 pyrUp(tmp, dst, Size(tmp.rows * 2, tmp.cols * 2)); 28 Show("Bigger", dst); 29 30 pyrDown(tmp, dst, Size(tmp.rows / 2, tmp.cols / 2)); 31 Show("Smaller", dst); 32 waitKey(); 33 return 0; 34 }
注意两个函数的第三个参数都是Size类型的,此类型是对象放大后的大小,因为使用的是512*512的图像,对应于金字塔型的图像放大运算方式,放大后的图像不可以编程其他非2的整数倍的大小,因此对于rows*1.5,rows*7等等这些尺寸是会出错的。只能是原图像大小乘或除2的正整数次幂。
同时注意,这里所说的放大倍数是尺寸上长和宽都被放大,因此上述结果就是:
就是说原本512x512的图像被放大2倍后为1024x1024,缩小为1/2是256x256。
以上
标签:style blog http io ar color os 使用 sp
原文地址:http://www.cnblogs.com/lhyz/p/4152229.html