[C++][opencv]opencv填充透明色到不规则polygon区域

news/2024/9/8 4:08:07/

大家用yolov5-seg分割都知道官方演示分割结果会把分割区域半透明填充到原图里面,那么C++如何实现呢。今天特地研究了下。由于分割点是变动的,所以我们需要用变量控制分割点数。

参考文章写的很不错,但是有个毛病,他这个是5点必须是常量,分割时候不一定是5个点,有可能是N个

opencv半透明填充不规则区域_opencv 给多边形填满透明色_玦尘的博客-CSDN博客

于是改成下面代码

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include<stdio.h>
#include <string>
using namespace cv;Mat src;
Mat dst;int main()
{namedWindow("src", WINDOW_AUTOSIZE);//WINDOW_AUTOSIZE:系统默认,显示自适应src = imread("E:\\test.jpg", 1);//1:为原图颜色,0:为灰度图,黑白颜色src.copyTo(dst);/*cv::Point pt[1][5];pt[0][0] = cv::Point(100, 100);pt[0][1] = cv::Point(300, 100);pt[0][2] = cv::Point(200, 200);pt[0][3] = cv::Point(250, 300);pt[0][4] = cv::Point(100, 200);const cv::Point* ppt[1] = { pt[0] };int npt[1] = { 5 };*/cv::Point* p = new cv::Point[5];p[0] = cv::Point(100, 100);p[1] = cv::Point(300, 100);p[2] = cv::Point(200, 200);p[3] = cv::Point(250, 300);p[4] = cv::Point(100, 200);cv::Point** pt = &p;const cv::Point* ppt[1] = { pt[0] };int npt[1] = { 0 };npt[0] = 5;cv::fillPoly(src, ppt, npt, 1, cv::Scalar(0, 255, 0));//cv::rectangle(src,cv::Point(450,100),cv::Point(750,400),cv::Scalar(0,255,0),-1,8);cv::addWeighted(dst, 0.7, src, 0.3, 0, dst);imshow("src", dst);waitKey(0);return 0;
}

注意C++new对象后需要及时释放资源不然可能会导致内存泄漏。上面5你可以换成变量进行操作,源码已经在VS2013+opencv3.4.4测试通过。效果图

 


http://www.ppmy.cn/news/103330.html

相关文章

全网最火爆,从接口测试到接口自动化测试总结,卷王进阶高级...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python接口自动化测…

为什么说企业需要搭建产品手册?

企业需要搭建产品手册的原因有很多&#xff0c;其中包括提高产品使用体验、降低售后服务成本、促进产品销售等。本文将从这些方面来介绍企业为什么需要搭建产品手册&#xff0c;并探讨如何有效地搭建和管理产品手册。 一、提高产品使用体验 产品手册是一份指导用户如何正确使…

商城配置-shorp

商城配置 说明 商城配置主要分为三块&#xff0c;基础配置&#xff0c;平台配置&#xff0c;支付配置,所有配置请都检查配置一下&#xff0c;文档中只对部分配置进行说明 基础配置 基础配置说明 基础配置包括&#xff0c;商城信息&#xff0c;会员配置&#xff0c;分享配置&am…

Spring中事务失效的场景和代码示例

在 Spring 中&#xff0c;事务可以通过声明式事务或编程式事务来管理。在一些情况下&#xff0c;声明式事务可能会失效&#xff0c;导致事务无法正常进行或者事务不完全回滚。下面是一些可能导致声明式事务失效的场景&#xff1a; 异常被 catch 吞掉了&#xff1a;如果在事务方…

1043 Is It a Binary Search Tree(50行代码+详细注释)

分数 25 全屏浏览题目 切换布局 作者 CHEN, Yue 单位 浙江大学 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the nodes key.The rig…

研发工程师玩转Kubernetes——非定时任务

在《研发工程师玩转Kubernetes——自动扩缩容》一文中&#xff0c;我们使用在本地使用wrk进行了压力测试。如果我们希望在容器中运行&#xff0c;该怎么做呢&#xff1f; 构建/推送wrk镜像 Dockerfile如下。主要就是在Ubuntu22中安装wrk。 From ubuntu:22.04 RUN apt-get up…

一个简单的带游标的存储过程

游标是变量&#xff0c;声明游标时一定要放在执行语句前面&#xff0c;和其它变量放在一起。 还有点小问题&#xff0c;在实际中游标多执行了一次 drop PROCEDURE if EXISTS get_label_ids_by_task_and_category; DELIMITER $ CREATE PROCEDURE get_label_ids_by_task_and_ca…

AI加持,Fabric让Power BI生态更强大

在Microsoft Build 2023上微软正式推出了Microsoft Faric预览版&#xff0c;它将Power BI、Azure Synapse、Azure Data Factory的优点整合到了一个统一的SasS服务中。数据工程师、数仓工程师、数据科学家、数据分析师和业务用户可以在Fabric中无缝协作&#xff08;微软这是要卷…

不要点击那个ZIP文件! 钓鱼者利用.ZIP域名来欺骗受害者

一种名为 "浏览器中的文件存档器 "的新的网络钓鱼技术可以被利用&#xff0c;当受害者访问一个.ZIP域时&#xff0c;在网络浏览器中 "模拟 "一个文件存档器软件。 "安全研究员mr.d0x上周披露&#xff1a;"通过这种网络钓鱼攻击&#xff0c;你在…

方正书版命令详解

方正书版常用的排版符包括&#xff1a; 空格&#xff1a;表示文字之间的间距&#xff0c;不同字号的文字需要适当调整空格大小。 省略号&#xff1a;用于省略一段文字&#xff0c;通常用三个点表示&#xff08;…&#xff09;。 破折号&#xff1a;用于表示强调或者断句&…

《消息队列高手课》课程笔记(五)

如何处理消费过程中的重复消息&#xff1f; 消息重复的情况必然存在 在 MQTT 协议中&#xff0c;给出了三种传递消息时能够提供的服务质量标准&#xff0c;这三种服务质量从低到高依次是&#xff1a; At most once: 至多一次。 消息在传递时&#xff0c;最多会被送达一次。换…

南开大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 南开大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆☆☆&#xff09; 南开大学计算机学科的研究工作始于1958年&#xff0c;是在实力雄厚的数学学科和物理学科的基础上发展起来的&#xff0c;是我国最早…

springboot + vue3实现视频播放Demo(video.js Vue3-video-play)

文章目录 学习链接前言ffmpeg安装ffmpeg配置环境变量分割视频文件 后台配置WebConfig 前端代码video.js示例安装依赖视频播放组件效果 Vue3-video-play示例安装依赖main.js中使用视频播放组件效果 学习链接 ffmpeg官网 长时长视频java存储及vue播放解决方法 【 攻城略地 】vue…

基于复旦微 JFM7K325T 全国产FPGA的高速数据采集、图像处理方案

板卡概述 PCIE-XM711 是一款基于 PCIE 总线架构的高性能数据预处理 FMC载板&#xff0c;板卡采用复旦微的 JFM7K325T FPGA 作为实时处理器&#xff0c;实现 各个接口之间的互联。该板卡可以实现 100%国产化。 板卡具有 1 个 FMC&#xff08;HPC&#xff09;接口&#xff0c;1 路…

one-stage目标检测方法

YOLO系列算法 从区域推荐到端到端 RCNN系列的方法和核心思想在于&#xff1a;先找出可能存在物体的区域&#xff0c;再确认物体的存在 这种思路归根溯源&#xff0c;来自传统的目标检测算法。 为了解决传统方法中的滑动窗口的方式&#xff0c;来找出可能存在目标的区域&…

MySQL---JDBC基础操作、SQL注入

1. JDBC JDBC&#xff08;Java DataBase Connectivity,java数据库连接&#xff09;是一种用于执行SQL语句的Java API。 JDBC是Java访问数据库的标准规范&#xff0c;可以为不同的关系型数据库提供统一访问&#xff0c;它由一组用Java 语言编写的接口和类组成。 JDBC需要连接…

创新微MinewSemi厘米级定位精度的GNSS 模块—MS32SN4

近日&#xff0c;中国无线连接解决方案提供商MinewSemi推出了其GNSS模块系列-MS32SN4。MinewSemi表示&#xff0c;这些嵌入式模块为产品提供了一种易于使用、具有成本效益的解决方案&#xff0c;支持物联网&#xff08;IoT&#xff09;应用。 集成天线模块适用于消费者解决方案…

Linux下mysql5.7.28安装

1&#xff09;/opt/software目录下上传MySQL安装包以及MySQL驱动jar包 链接: 百度网盘 请输入提取码 提取码: hp2x mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar mysql-connector-java-5.1.37.jar 2&#xff09;解压MySQL安装包 [shuidihadoop201 software]$ mkdir mysql_lib…

基于Springboot + Vue3的云盘系统

目录 一. &#x1f981; 前言二. &#x1f981; 主要技术栈三. &#x1f981; 架构搭建1. 项目搭建效果2. 各部分作用 四. &#x1f981; 主要功能1.功能图2. 主要功能2.1 分片上传文件2.2 存储分享记录 五. &#x1f981; 效果显示 一. &#x1f981; 前言 源码获取地址&#…

GPT模型应用及遥感云大数据在灾害、水体与湿地领域典型案例展示

GPT GPT的全称&#xff0c;是Generative Pre-Trained Transformer&#xff08;生成式预训练Transformer模型&#xff09;是一种基于互联网的、可用数据来训练的、文本生成的深度学习模型。 GPT与专注于下围棋或机器翻译等某一个具体任务的“小模型”不同&#xff0c;AI大模型…