using namespace std;
using namespace cv;const char* window_name = "Pyramids Demo";
/**
* @function main
*/
int main(int argc, char** argv)
{
/// General instructions
cout << "\n Zoom In-Out demo \n "
"------------------ \n"
" * [i] -> Zoom in \n"
" * [o] -> Zoom out \n"
" * [ESC] -> Close program \n" << endl;//![load]
const char* filename = argc >= 2 ? argv[1] : "F://opencv//VS//demo//data//chicky_512.png";// Loads an image
Mat src = imread(filename);// Check if image is loaded fine
if (src.empty()) {
printf(" Error opening image\n");
printf(" Program Arguments: [image_name -- default ../data/chicky_512.png] \n");
return -1;
}
//![load]//![loop]
for (;;)
{
//![show_image]
imshow(window_name, src);
//![show_image]
char c = (char)waitKey(0);if (c == 27)
{
break;
}
//![pyrup]
else if (c == 'i')
{
pyrUp(src, src, Size(src.cols * 2, src.rows * 2));// 放大
printf("** Zoom In: Image x 2 \n");
}
//![pyrup]
//![pyrdown]
else if (c == 'o')
{
pyrDown(src, src, Size(src.cols / 2, src.rows / 2));// 缩小
printf("** Zoom Out: Image / 2 \n");
}
//![pyrdown]
}
//![loop]return 0;
}
若先缩小,然后再放大,图像清晰度会受影响。