OpenCV鼠标操作(画红色方框截取图像)

cpp 复制代码
Point sp(-1, -1);
Point ep(-1, -1);
Mat temp;
static void on_draw(int event, int x, int y, int flags,void *user_data)
{
  Mat image = *((Mat *)user_data);
  if (event == EVENT_LBUTTONDOWN)
  {
    sp.x = x;
    sp.y = y;
  }
  else if (event == EVENT_LBUTTONUP)
  {
    ep.x = x;
    ep.y = y;
    int dx = ep.x - sp.x;
    int dy = ep.y - sp.y;
    if (dx > 0 && dy > 0)
    {
      Rect rect(sp.x,sp.y,dx,dy);
      rectangle(image, rect, Scalar(0, 0, 255), 2, 8, 0);
      imshow("mouse_draw", image);
      imshow("roi", image(rect));
      sp.x = -1;
      sp.y = -1;
    }
  }
  else if (event == EVENT_MOUSEMOVE)
  {
    if (sp.x > 0 && sp.y > 0)
    {
      ep.x = x;
      ep.y = y;
      int dx = ep.x - sp.x;
      int dy = ep.y - sp.y;
      if (dx > 0 && dy > 0)
      {
        temp.copyTo(image);

        Rect rect(sp.x, sp.y, dx, dy);
        rectangle(image, rect, Scalar(0, 0, 255), 2, 8, 0);
        imshow("mouse_draw", image);
      }
    }
  }
}

void introduction::mouse_demo()
{
  QString appPath = QCoreApplication::applicationDirPath();
  imagePath = appPath + "/A.jpg";
  img = cv::imread(imagePath.toStdString());
  if (img.empty())
    return;
  temp = img.clone();
  namedWindow("mouse_draw", WINDOW_AUTOSIZE);
  setMouseCallback("mouse_draw", on_draw,(void*)(&img));

  imshow("mouse_draw", img);
}

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

相关推荐
飞鹰511 分钟前
CUDA入门:从Hello World到矩阵运算 - Week 1学习总结
c++·人工智能·性能优化·ai编程·gpu算力
触想工业平板电脑一体机3 分钟前
【触想智能】工业触控一体机在船舶海运设备上应用的特点和具体场景分析
android·网络·计算机外设·电脑·智能电视
minstbe6 分钟前
AI开发:用 AI 从 0 到 1 做出能变现的小应用:以 MergePDF-Pro 为例的完整实战
人工智能
专注数据的痴汉7 分钟前
「数据获取」中国会计年鉴(1996-2024)
大数据·人工智能·信息可视化
小真zzz7 分钟前
ChatPPT免费功能之【导出PDF】:PPT内容安全+便捷分享
人工智能·ai·pdf·powerpoint·ppt·aippt
谢的2元王国9 分钟前
小数据量样本 2500条之下 且每条文本长度不超过35个字的时候 多词汇平均向量外加word2vec的语义模型处理后再到特征向量中检索即可
人工智能·自然语言处理·word2vec
sali-tec10 分钟前
C# 基于OpenCv的视觉工作流-章8-形态学
人工智能·深度学习·opencv·算法·计算机视觉
IT_陈寒11 分钟前
2024年JavaScript开发者必备的10个ES13新特性实战指南
前端·人工智能·后端
智慧化智能化数字化方案12 分钟前
【精品资料鉴赏】详解企业研发生产一体化总体规划建设方案
大数据·人工智能·企业研发生产一体化·企业如何开展数字化转型·企业数字化营销·数字化转型咨询规划·数字化转型架构
IT·小灰灰14 分钟前
DMXAPI驱动的小说生成系统:从集成到优化的完整实践
人工智能·aigc