21xrx.com
2024-09-20 00:42:02 Friday
登录
文章检索 我的文章 写文章
C++ 简单放大镜代码,变焦提供 3 档位333
2023-06-27 06:00:02 深夜i     --     --
C++ 放大镜 代码 变焦 档位

C++ 简单放大镜代码

放大镜是一种常见的图像处理工具,可以让我们更加清晰地观察图像中的细节。下面是一个简单的 C++ 放大镜代码,支持三档变焦。

代码如下:


#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int main()

{

  Mat original = imread("picture.jpg", CV_LOAD_IMAGE_COLOR);

  Mat zoomed; // 放大后的图像

  namedWindow("Zoomed Image", WINDOW_NORMAL);

  resizeWindow("Zoomed Image", 600, 400); // 设置窗口大小

  // 显示原图

  imshow("Original Image", original);

  while (true)

  {

    int key = waitKey(0);

    if (key == 27) // 按下ESC键退出

      break;

    else if (key == 49) // 按下数字1键,放大1倍

      resize(original, zoomed, Size(original.cols*2, original.rows*2));

    else if (key == 50) // 按下数字2键,放大2倍

      resize(original, zoomed, Size(original.cols*3, original.rows*3));

    else if (key == 51) // 按下数字3键,放大3倍

      resize(original, zoomed, Size(original.cols*4, original.rows*4));

    // 显示放大后的图像

    imshow("Zoomed Image", zoomed);

  }

  return 0;

}

代码解析:

1. 加载原始图像,用 `Mat` 类型保存。


Mat original = imread("picture.jpg", CV_LOAD_IMAGE_COLOR);

2. 创建一个新的 `Mat` 对象 `zoomed`,用来保存放大后的图像。


Mat zoomed;

3. 创建一个窗口,用 `namedWindow` 函数和 `WINDOW_NORMAL` 参数,可设置窗口大小。


namedWindow("Zoomed Image", WINDOW_NORMAL);

resizeWindow("Zoomed Image", 600, 400);

4. 显示原始图像,用 `imshow` 函数。


imshow("Original Image", original);

5. 进入循环,等待按键事件。


while (true)

{

  int key = waitKey(0);

  ...

}

6. 如果按下了 ESC 键(ASCII 码为 27),则退出循环。


if (key == 27)

  break;

7. 如果按下数字键 1,则将原始图像放大 1 倍,用 `resize` 函数实现。


if (key == 49) // 按下数字1键,放大1倍

  resize(original, zoomed, Size(original.cols*2, original.rows*2));

8. 如果按下数字键 2,则将原始图像放大 2 倍。


if (key == 50) // 按下数字2键,放大2倍

  resize(original, zoomed, Size(original.cols*3, original.rows*3));

9. 如果按下数字键 3,则将原始图像放大 3 倍。


if (key == 51) // 按下数字3键,放大3倍

  resize(original, zoomed, Size(original.cols*4, original.rows*4));

10. 显示放大后的图像,用 `imshow` 函数。


imshow("Zoomed Image", zoomed);

随着数字键的按下,放大镜的倍数也会相应提高,并在窗口中显示对应的放大后的图像。这个简单的 C++ 放大镜代码可以让您更好地观察不同图像的细节。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复