opencv —— inpaint 图像修补、去除指定区域物体
2024-09-05 05:36:56
实现图像修补、物体去除:inpaint 函数
void inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags);
- src,输入图像,即源图像,填 Mat 类对象即可。但需是 8 位单通道或三通道图像。
- inpaintMask,修复掩膜,为 8 位单通道图像。其中非零像素为需要修补的区域。
- dst,输出图像,需要和源图像有相同的尺寸和类型。
- inpaintRadius,圆形邻域半径。
- flags,修补方法的标识符,两种选择:
标识符 | 说明 |
INPAINT_TELEA | 基于 Navier-Stokes 方程的方法 |
INPAINT_NS | Alexandru Telea 方法 |
代码示例:
//该程序功能为:消除鼠标选择的矩形区域内的物体
#include<opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
Mat src, back, dst;
Point pre, now;
bool draw = false;
RNG rngs = { };
Scalar colors;
void on_mouse(int event, int x, int y, int flags, void *param) {//鼠标操作响应函数
switch (event){
case EVENT_LBUTTONDOWN://按下左键
draw = true;
pre = Point(x, y);
break;
case EVENT_MOUSEMOVE://鼠标移动
if (draw) {
Mat tem = dst.clone();
now = Point(x, y);
colors = Scalar(rngs.uniform(, ), rngs.uniform(, ), rngs.uniform(, ));
rectangle(tem, pre, now, colors);
imshow("dst", tem);
}
break;
case EVENT_LBUTTONUP://左键抬起
draw = false;
rectangle(back, pre, now, Scalar(), -);//在 修复掩膜 图像中绘制选择区域
inpaint(dst, back, dst, , INPAINT_TELEA);//修复图像
imshow("dst", dst);
break;
}
}
int main() {
src = imread("C:/Users/齐明洋/Desktop/示例图片/1.jpg");
imshow("src", src); namedWindow("dst");
dst = src.clone();
imshow("dst", dst);
back = Mat::zeros(src.size(), CV_8UC1);//修复掩膜
setMouseCallback("dst", on_mouse);//https://www.cnblogs.com/bjxqmy/p/11914601.html waitKey();
}
效果演示:
最新文章
- C 语言学习 第二次作业总结
- oracle 11g 服务启动时提示1053错误,服务启动不了,重新配置监听解决问题
- 今天第一节PS课
- 转载 sql 存储过程与函数区别
- svn: E155004 &#39;XX&#39; is already locked
- iOS 重大新漏洞:可绕开苹果审核机制
- 方法----MessageDigest和DigestUtils加密算法
- Windows Azure免费空间如何搭建PHP网站/数据库、域名绑定
- Python串行运算、并行运算、多线程、多进程对比实验
- jsf2.0视频
- DWZ主从结构计算
- 通过匹配绑定select option的文本值 模糊匹配
- BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划( dp)
- Swift - 继承UIView实现自定义可视化组件(附记分牌样例)
- php实现socket推送技术
- [ Java学习基础 ] Java对象的创建和销毁
- python笔记一(语言简介、解释器、输入输出)
- Kafka~HelloWorld得来不易
- 【react】兄弟组件的通信方式,传统非redux
- Excel Open Xml中CellStyleXfs,cellStyle,cellXfs之间关系的总结
热门文章
- 总是在起头可是能怎么办呢 Python数据分析
- Java容器解析系列(15) HashTable Dictionary &; Properties
- reactNative-解决react native使用fetch函数 Network request failed 问题
- mysql--->;mysql慢查询
- Oracle:imp导入dmp文件
- 脚本在Shell可以执行成功,放到crontab里执行失败
- Boyer-Moore 算法 Leetcode169
- 1240: 函数strcmp的设计
- 微信小程序框架分析小练手(一)——猫眼电影底部标签导航制作
- 二、Linux系统硬链接和软链接详细介绍与实践