OPENCV 放大缩小

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;
}

若先缩小,然后再放大,图像清晰度会受影响。 

发布了31 篇原创文章 · 获赞 0 · 访问量 2966

猜你喜欢

转载自blog.csdn.net/heyongfu20052005/article/details/102481308
今日推荐