当前位置: 首页 > news >正文

微信网站与响应式网站有哪些网站公司建设公司

微信网站与响应式网站有哪些,网站公司建设公司,新开传奇网站推荐,电脑网站打不开怎么解决引言 在图像处理过程中,提取感兴趣区域(ROI)并在其上进行处理后,往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤: 找到最小外接矩形:使用 cv::boundingRect 或 cv::minAreaRect 提取感兴…

引言

在图像处理过程中,提取感兴趣区域(ROI)并在其上进行处理后,往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤:

找到最小外接矩形:使用 cv::boundingRect 或 cv::minAreaRect 提取感兴趣区域的最小外接矩形。
从原图中提取 ROI:根据矩形坐标从原图中剪切出 ROI 进行处理。
在 ROI 上进行处理:对提取出的 ROI 进行特定的图像处理操作。
将处理后的 ROI 映射回原图:将处理后的结果重新放置回原图的相应位置。

鼠标选取区域

可以使用OpenCV和C++来通过鼠标绘制多边形,并确定闭合点。功能通过捕捉鼠标事件来实现。绘制多边形时,当点击的点接近第一个点时,可以自动将多边形闭合。
在绘制多边形并将其闭合后,通过OpenCV的 minAreaRect 函数来计算该多边形的最小外接矩形。

#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>using namespace cv;
using namespace std;vector<Point> points; // 存储鼠标点击的点
bool drawing = false; // 是否正在绘制
const int CLOSE_DISTANCE = 10; // 闭合多边形的最小距离// 判断当前点是否接近第一个点
bool isCloseToFirstPoint(Point p) {if (points.empty()) return false;return norm(p - points[0]) < CLOSE_DISTANCE;
}// 鼠标回调函数
void onMouse(int event, int x, int y, int, void* param) {Mat& image = *(Mat*)param;if (event == EVENT_LBUTTONDOWN) {Point p(x, y);if (isCloseToFirstPoint(p) && points.size() > 2) {// 如果点接近第一个点并且有至少三个点,则闭合多边形points.push_back(points[0]);polylines(image, points, true, Scalar(0, 255, 0), 2); // 闭合并绘制多边形// 计算最小外接矩形RotatedRect minRect = minAreaRect(points);// 获取矩形的4个顶点Point2f rect_points[4];minRect.points(rect_points);// 绘制最小外接矩形for (int i = 0; i < 4; i++) {line(image, rect_points[i], rect_points[(i + 1) % 4], Scalar(255, 0, 0), 2);}imshow("Image", image); // 显示最终结果drawing = false;} else {// 否则继续添加点drawing = true;points.push_back(p);}} else if (event == EVENT_MOUSEMOVE && drawing) {Mat tempImage = image.clone(); // 创建临时图像用于显示if (!points.empty()) {polylines(tempImage, points, false, Scalar(255, 0, 0), 2); // 画多边形line(tempImage, points.back(), Point(x, y), Scalar(255, 0, 0), 2); // 绘制最后一条线}imshow("Image", tempImage);}else if (event == EVENT_RBUTTONDOWN && !points.empty()) {// 右键按下,重置并清除所有点points.clear();image = Mat::zeros(image.size(), image.type()); // 重置图像imshow("Image", image);drawing = false;}
}int main() {// 创建空白图像Mat image = Mat::zeros(Size(800, 600), CV_8UC3);// 设置鼠标回调namedWindow("Image", WINDOW_AUTOSIZE);setMouseCallback("Image", onMouse, &image);// 显示图像并等待退出imshow("Image", image);waitKey(0);return 0;
}

在这里插入图片描述

按最小外接矩形剪切图像

bool is_rotated_rect(const cv::RotatedRect& rect)
{// 检查中心点是否在合理范围内if (rect.center.x == 0 && rect.center.y == 0){return false;}// 检查宽度和高度是否为正值if (rect.size.width <= 0 || rect.size.height <= 0){return false;}// 如果以上条件都满足,可以认为矩形是有效的return true;
}bool cut_rotate_roi(cv::Mat& cv_src, cv::RotatedRect& minRect, cv::Mat& cv_roi)
{if (is_rotated_rect(minRect)){cv::Mat M = cv::getRotationMatrix2D(minRect.center, minRect.angle, 1.0);cv::Mat rotated;// 应用仿射变换 warpAffine,使用三次插值(INTER_CUBIC)图像旋转。旋转结果存储在 rotated 中。cv::warpAffine(cv_src, rotated, M, cv_src.size(), cv::INTER_CUBIC);// 裁剪旋转矩形区域cv::getRectSubPix(rotated, minRect.size, minRect.center, cv_roi);return true;}return false;
}

实现效果:
在这里插入图片描述

http://www.yayakq.cn/news/947120/

相关文章:

  • 网站建设多少预算云星穹铁道网页版入口
  • 网站模板安全管理系统少女たちよ在线观看动漫4
  • 广州建设网站公司哪家好推荐电商网站建设
  • 百度云搭建网站网页设计与制作初学者教程
  • 哪个网站做app驾校官方网站 模板
  • 商城网站建设行情安康免费做网站公司
  • 做网站必须先买域名吗企业网站群建设模式
  • 做暧昧网站企业关键词推广
  • 网站的经营方式佛山网页设计模板
  • cms网站开发教程ai智能设计logo免费
  • 菏泽网站网站建设wordpress 附件显示设置
  • asp.net网站管理系统深圳市seo网络推广平台
  • 档案网站建设的步骤公司网站建设要求
  • 长沙多迪php网站开发培训学校北京seo技术
  • 网站建设怎样回答客户问题洛阳营销型网站建设
  • 为什么浙江建设厅网站装修图片大全
  • 做网站预算wordpress前台登陆界面
  • 官网应用商店下载网站换空间不换域名对seo有影响吗
  • 网站建设项目计划书如何写商城网站优化
  • 寻找移动网站建设沈阳网站开发工程师招聘网
  • 发布网站需要多大空间商贸有限公司的经营范围
  • 国外网站备案查询学习php网站建设
  • 怎么用手机做网站wordpress菜单栏菜单简介
  • 一个网站有几个快照企业运营管理
  • 电商网站建设特色如何设计一个公司的网页
  • 个人可以做电视台网站吗源码商城交易平台
  • 网站类网站开发源代码深圳传媒公司有哪些
  • 广州市越秀区建设局官方网站wordpress 多人博客
  • 直流分公司四川建设部网站大连海洋大学工程建设信息网
  • 网站制作设计多少钱境外公司在国内建网站