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

增城新塘网站建设网站开发 盈利

增城新塘网站建设,网站开发 盈利,做刀模线网站,仙游有人做网站在 OpenCV 中,cv::approxPolyDP 是一个函数,用于对轮廓进行多边形逼近(Polygon Approximation)。它可以将复杂的轮廓逼近为简化的多边形,从而减少轮廓的数据点,使轮廓更加紧凑。 函数原型如下:…

在 OpenCV 中,cv::approxPolyDP 是一个函数,用于对轮廓进行多边形逼近(Polygon Approximation)。它可以将复杂的轮廓逼近为简化的多边形,从而减少轮廓的数据点,使轮廓更加紧凑。

函数原型如下:

cv::approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed);

参数说明:

  • curve: 输入的轮廓点,可以是一个 std::vector<cv::Point>cv::Mat 类型的数据。
  • approxCurve: 输出的多边形逼近点,返回一个 std::vector<cv::Point>cv::Mat 类型的数据,代表多边形逼近的点。
  • epsilon: 控制逼近精度的参数。较小的值会产生更精细的逼近,较大的值会产生更简化的逼近。
  • closed: 一个布尔值,用于指定多边形是否闭合。如果设置为 true,则多边形是闭合的,如果设置为 false,则多边形是非闭合的。

以下是一个简单的示例代码,演示如何使用 cv::approxPolyDP 对轮廓进行多边形逼近:

#include <opencv2/opencv.hpp>int main() {// 读取图像并转换为灰度图像cv::Mat image = cv::imread("path/to/your/image.jpg", cv::IMREAD_GRAYSCALE);// 二值化处理,将图像转换为黑白图像,以便寻找轮廓cv::Mat binary;cv::threshold(image, binary, 128, 255, cv::THRESH_BINARY);// 寻找轮廓std::vector<std::vector<cv::Point>> contours;cv::findContours(binary, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);// 多边形逼近std::vector<std::vector<cv::Point>> approxContours(contours.size());for (size_t i = 0; i < contours.size(); ++i) {cv::approxPolyDP(contours[i], approxContours[i], 5, true); // 使用 epsilon = 5 进行多边形逼近}// 绘制轮廓和多边形逼近cv::Mat result;cv::cvtColor(binary, result, cv::COLOR_GRAY2BGR);cv::drawContours(result, contours, -1, cv::Scalar(0, 0, 255), 2); // 绘制原始轮廓(红色)cv::drawContours(result, approxContours, -1, cv::Scalar(0, 255, 0), 2); // 绘制多边形逼近(绿色)// 显示结果cv::imshow("Original and Approximated Contours", result);cv::waitKey(0);return 0;
}

在上述示例中,我们首先读取图像并转换为灰度图像,然后进行二值化处理,找到图像中的轮廓。接着,使用 cv::approxPolyDP 对每个轮廓进行多边形逼近,并绘制原始轮廓(红色)和多边形逼近(绿色)的结果。

使用 Python 和 OpenCV 实现多边形逼近的示例代码:

import cv2
import numpy as np# 读取图像并转换为灰度图像
image = cv2.imread("path/to/your/image.jpg", cv2.IMREAD_GRAYSCALE)# 二值化处理,将图像转换为黑白图像,以便寻找轮廓
_, binary = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY)# 寻找轮廓
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 多边形逼近
approxContours = []
for contour in contours:epsilon = 0.01 * cv2.arcLength(contour, True) # epsilon 控制逼近精度的参数approx = cv2.approxPolyDP(contour, epsilon, True)approxContours.append(approx)# 绘制轮廓和多边形逼近
result = cv2.cvtColor(binary, cv2.COLOR_GRAY2BGR)
cv2.drawContours(result, contours, -1, (0, 0, 255), 2) # 绘制原始轮廓(红色)
cv2.drawContours(result, approxContours, -1, (0, 255, 0), 2) # 绘制多边形逼近(绿色)# 显示结果
cv2.imshow("Original and Approximated Contours", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

在 Python 版本的代码中,我们使用了 cv2.threshold 函数进行二值化处理,使用 cv2.findContours 函数找到图像中的轮廓,然后通过 cv2.approxPolyDP 函数对每个轮廓进行多边形逼近。最后,使用 cv2.drawContours 函数将原始轮廓和多边形逼近结果绘制在图像上,并显示结果。

Python 版本的代码与 C++ 版本的代码相比,在函数调用时稍有不同,但整体逻辑是相同的。

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

相关文章:

  • 工作是套模板做网站排名前50名免费的网站
  • 百度网站介绍wordpress插件放到哪
  • 爱用建站平台的优势公司网页免费制作
  • 定制摄影app和摄影网站的区别scrm企业微信管理系统
  • 东莞网站建设搭建pc端网站优缺点
  • 具有口碑的柳州网站建设哪家好wordpress一键采集文章
  • 做哪个行业的网站好手机网站建设推广方案
  • 视觉设计网站推荐重庆市教育考试院门户网站
  • 腾讯云服务器网站建设网页个人信息页面
  • 国内建网站多少钱装修案例
  • 网站建设yuanmus阳东区建设局网站
  • 偃师网站wordpress技术主题
  • 图书馆门户网站建设公司网站与营销网站区别
  • 做网站公司是干什么的长春模板建站公司
  • 网站对齐原则北海 做网站 英文
  • 合租网站设计灰色链网站建设
  • 购物网站建设工作流程做简历用什么网站
  • 山西响应式网站建设哪家有利川做网站
  • 经典网站欣赏、做网站对象存储
  • 国内做外贸的网站html企业网站模板下载
  • 传奇服务器网站如何建设wordpress 重新初始化
  • 优化手机网站兰州做网站
  • wordpress 图片模板修改太原seo公司
  • 网站字体大小合适做网站需要注意什么
  • 广东品牌网站建设哪家好网站优化方案
  • 教育行业网站开发wordpress 好用的编辑器
  • 网站值多少钱史上最全的微信小程序代码大全
  • 密云建设银行招聘网站有没有免费的室内设计软件
  • 新网站如何才做被百度收录网站开发神书
  • 网站建设最好的公司排名分销商城系统定制开发