上位机图像处理和嵌入式模块部署(qmacvisual图像修复)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

qmacvisual提供了一个图像修复的功能。所谓的图像修复,就是对图像中缺省的部分进行修补,它的操作,其实分成两个步骤,第一个就是找出需要修复的区域、设置修复区域的关联半径;第二个部分就是通过设定标志位的方式,确定采用什么样的修复算法来解决这个问题。目前opencv使用了两个算法来解决这个问题,其中一个是cv2.INPAINT_TELEA,另外一个是cv2.INPAINT_NS,两者的函数入口都是cv::inpaint。

1、创建工程和流程

要想使用qmacvisual的插件功能,首先需要依次创建工程和创建流程。

2、导入图像

这里导入的图像就是需要修复的图像。导入的方法,就是从【图像处理】-》【获取图像】中,把插件拖到流程窗口中,单击插件就可以看到这样的内容,

如图所示,图像中白色的部分就是我们需要修复的部分。最终,我们希望得到的效果就是将图像中白色的部分,变成和周边差不多的颜色,并且颜色的过度尽量自然逼真一点。

3、导入图像修复插件

图像修复插件的位置,也是位于【图像处理】下面,我们直接将插件拖到流程窗口就可以了。双击插件,就可以看到这样的窗口,

插件中有四个地方需要配置,第一个是图像的来源;第二个和第三个是阈值的大小,通过这两个参数可以设定修复的范围;第四个是关联的半径。最后单击执行按钮,就可以看到修复的效果。仅仅从参数可能还无法知道修复的细节,没有关系,可以进一步查找下相关的实现代码,

复制代码
bool frmImageRepair::Inpaint(const cv::Mat src_mat, cv::Mat& dst_mat, const int min_threshold, const int max_threshold, const double inpaint_radius)
{
	try
	{
		//创建掩码
		cv::Mat mask = cv::Mat();
		if (src_mat.channels() == 3)
		{
			cv::cvtColor(src_mat, mask, cv::COLOR_BGR2GRAY);
		}
		else if (src_mat.channels() == 4)
		{
			cv::cvtColor(src_mat, mask, cv::COLOR_RGBA2GRAY);
		}			
		cv::threshold(mask, mask, min_threshold, max_threshold, cv::ThresholdTypes::THRESH_BINARY);
		cv::Mat dst = cv::Mat();
		cv::inpaint(src_mat, mask, dst, inpaint_radius, cv::INPAINT_TELEA);
		dst_mat = dst;
		return true;
	}
	catch (...)
	{
		return false;
	}
}

通过代码,我们看到整个实现的过程还是比较清晰的。整个流程有这么三个步骤,首先将图像变成了灰度图mask。接着,将输入的参数配置到二值化函数cv::threshold当中,这是第二步。有了这两步之后,就可以通过源图像、二值化图像和关联半径范围,通过cv::inpaint函数实现最关键的第三步,即图像修复操作。

4、使用场景

在工业场景中,虽然图像修复用的不多。但是消费领域,这个功能还是很实用的,特别是在修复一些老照片方面,还是非常不错的。当然现在随着ai技术的引入,在图像修复领域也有很多ai实践的范例,有兴趣的同学可以去寻找一下相关的论文,应该会有不少的收获。

相关推荐
吴佳浩2 小时前
Skill 为什么不同于 Tool?Agent 技能库的自演进与动态加载机制
人工智能·agent·ai编程
大模型任我行5 小时前
谷歌:“课程学习”融入扩散模型强化学习
人工智能·语言模型·自然语言处理·论文笔记
AIGCmagic社区5 小时前
具身智能专题:机器人也有Scaling Law?智元GE-Act 2.0用3万小时真机数据给出答案
人工智能·aigc·具身智能
Rosanci6 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
明月_清风6 小时前
AI 越来越强,程序员真正的价值到底是什么?
人工智能·后端
m0_466525297 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
火山引擎开发者社区7 小时前
OpenViking:给 Codex 加上长期记忆
人工智能
荆棘鸟智能7 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
火山引擎开发者社区7 小时前
当 AI 内容真假难辨,谁来为真实签名 —— 证书中心 C2PA 内容可信溯源服务正式发布
人工智能
百万蹄蹄向前冲7 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能