基于PyQt5的桌面图像调试仿真平台开发(8)锐化

系列文章目录

基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建

基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定

基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理

基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理

基于PyQt5的桌面图像调试仿真平台开发(5)亮度处理

基于PyQt5的桌面图像调试仿真平台开发(6)去马赛克

基于PyQt5的桌面图像调试仿真平台开发(7)伽马矫正

基于PyQt5的桌面图像调试仿真平台开发(8)锐化

基于PyQt5的桌面图像调试仿真平台开发(9)去噪

基于PyQt5的桌面图像调试仿真平台开发(10)色彩矩阵

基于PyQt5的桌面图像调试仿真平台开发(11)清晰度测试

基于PyQt5的桌面图像调试仿真平台开发(12)图像灰度显示

基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示

基于PyQt5的桌面图像调试仿真平台开发(14)色彩增强

基于PyQt5的桌面图像调试仿真平台开发(15)图像融合

工程代码:https://gitee.com/xiaoshixiao00/py-ispp


目录

系列文章目录

前言

一、锐化是什么?

二、开发步骤和演示

1.怎么实现

2.编写和显示


前言

前面学习了gamma映射的而实现,接下来学习去噪和锐化。


一、锐化是什么?

        通过图像处理技术,增强照片的清晰度和细节,使得照片看起来更加清晰、鲜明和有质感。在数字摄影中,照片锐化是一种常见的后期处理技术,可以使得照片更加生动、真实,同时也可以弥补拍摄时的一些不足。。

二、开发步骤和演示

1.怎么实现

        锐化和模糊都可以通过opencv的算子实现,常见的锐化算法是在边缘检测梯度算子的基础上和原图像进行加权,梯度检测算子有sobel锐化,laplacian锐化,scharr锐化,canny锐化。

cv2.Sobel(image_rgb,cv2.CV_64F,0,1,ksize=5)cv2.Laplacian(image_rgb,cv2.CV_64F)cv2.Scharr(image_rgb,cv2.CV_64F,0,1)cv2.Canny(image_rgb,100,200)

2.编写和显示

①,开发图像ui控件和绑定事件

参考基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理_上天肖的博客-CSDN博客

②,算法开发实现

直接调用opencv的梯度检测算子接口,检测到边缘后,再把边缘权重加大,贴到原来的图像上,也就实现了锐化。

#图像Sobel锐化
def proc_image_Sobel_sharpen(image_rgb):print("proc_image_Sobel_sharpen,")result = cv2.Sobel(image_rgb,cv2.CV_64F,0,1,ksize=5)print("result:", result.shape)#sobel处理后数据为浮点数,需要转为整数result = np.around(result)result = result.clip(0, 255).astype('uint8')#cv2.imshow("sobel",result)result = cv2.addWeighted(image_rgb, 0.9, result, 0.1, 0)return result#图像Laplacian锐化
def proc_image_Laplacian_sharpen(image_rgb):print("proc_image_Laplacian_sharpen,")result = cv2.Laplacian(image_rgb,cv2.CV_64F)result = cv2.addWeighted(image_rgb, 0.9, result, 0.1, 0)#需要转为整数result = np.around(result)result = result.clip(0, 255).astype('uint8')return result#图像Scharr锐化
def proc_image_Scharr_sharpen(image_rgb):print("proc_image_Scharr_sharpen,")result = cv2.Scharr(image_rgb,cv2.CV_64F,0,1)result = cv2.addWeighted(image_rgb, 0.9, result, 0.1, 0)# 需要转为整数result = np.around(result)result = result.clip(0, 255).astype('uint8')print("result:", result.shape)return result#图像Canny锐化
def proc_image_canny_sharpen(image_rgb):print("proc_image_canny_sharpen,")result = cv2.Canny(image_rgb,100,200)# 需要转为整数result = np.around(result)result = result.clip(0, 255).astype('uint8')#cv2.imshow("canny", result)print("result:",result.shape)#需要从灰度图转为全彩result = cv2.cvtColor(result, cv2.COLOR_GRAY2RGB)print("result:", result.shape)result = cv2.addWeighted(image_rgb, 0.9, result, 0.1, 0)result = np.around(result)result = result.clip(0, 255).astype('uint8')return result

③,演示

导入图像

 点击锐化,里面的编辑框的参数暂时没有实现,下拉框选择sobel算子,点击确定,能看到锐化后的细节更加明显,不过图像不再平滑,有明显的振铃效应。


 总结

锐化能够细化细节,但是影响图像的平滑性,并且可能增大噪声。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15874.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTFSHOW 每周大挑战 RCE极限挑战

RCE挑战1 开题直接给了源码 过滤了括号和点号。 使用内敛绕过。 payload: codeecho tac /f1agaaa;RCE挑战2 源码直接给了。 基本把能用的都过滤了,只剩下$()_;[],./字符,自增RCE无疑。 //相当于 ($_GET[_])($_GET[__]) 使用的时候url编…

基于simulink使用二维规范化互相关进行模式匹配和目标跟踪(附源码)

一、前言 此示例演示如何使用二维规范化互相关进行模式匹配和目标跟踪。双击“编辑参数”块以选择要检测的类似目标的数量。您还可以更改金字塔因子。通过增加它,您可以更快地将目标模板与每个视频帧匹配。更改金字塔因子可能需要更改阈值。 此外,还可…

华为云流水线CodeArts Pipeline怎么样?能实现哪些功能?

华为云流水线服务CodeArts Pipeline,旨在提升编排体验,开放插件平台,并提供标准化的DevOps企业治理模型,将华为公司内的优秀研发实践赋能给伙伴和客户。 灵活编排、高效调度 开放流水线插件 内置企业DevOps研发治理模型 体验通…

学习单片机的三个步骤:基础知识、编程语言和实践项目

当然!学习单片机的过程可以分为以下三个步骤: 学习基础知识:在开始学习单片机之前,首先需要掌握一些基础知识。了解数字电子学和模拟电子学的基本原理是很重要的,包括数字和模拟信号、逻辑门、计数器、寄存器等。还需…

Python: 如何批量预处理FY4A L1 DISK和REGC产品?(辐射定标/裁剪/GLT校正/HDF5转TIFF文件等)

目录 01 前言 1.1 想要说 1.2 Requirements 1.3 程序适用数据集 02 函数说明 2.1 读取HDF5文件某一数据集 2.2 读取HDF5文件数据集属性 2.3 对FY4A数据集进行辐射定标 2.4 基于官方地理对照表获取经纬度数据(仅适用DISK) 2.5 依据行列号计算经纬度数据(仅适用DISK) …

【观察】新五丰联合华为“躬身实践”,推动猪场实现智慧化跨越升级

中国是全球的生猪生产和消费大国,生猪存栏量、出栏量以及猪肉产量均居世界第一。不仅如此,我国的人口数量和饮食结构还决定了猪肉在国内肉类消费中具有“不可撼动”的地位,可以说猪肉的供应与国计民生息息相关。 数据显示,2022年中…

4-软件错误(BUG)

目录 1.什么是bug? 2.如何描述一个bug? ①发现问题的版本 ②问题出现的环境 ③错误重现的步骤 ④预期行为的描述 ⑤错误行为的描述 ⑥其他 ⑦不要把多个bug放到一起 PS:案例1 PS:案例2 3.如何定义bug的级别? ①Blocker&#x…

Kubernetes Pod卷 - Pod镜像的升级和回滚 - 探针

目录 扩展: Pod创建的拓扑图: 提出的问题: Pod 卷的使用:Pod的数据持久化问题 配置 Pod 以使用卷进行存储 参考文档:配置 Pod 以使用卷进行存储 | Kubernetes 有状态应用和无状态应用: Pod 配置卷 1…

linux 系统errno 对应参考及代码

结论 linux下系统errno都有对应的说明描述&#xff0c;发生错误时获取errno即可知道具体问题描述 如下图 代码如下 golang版 package main import ("syscall""strings""fmt" ) func main() {for i : 0; i < 200; i {if !strings.HasPrefi…

uniapp 微信小程序导航功能(单个地址)

获取终点的坐标&#xff0c;根据终点的坐标&#xff0c;终点名称&#xff0c;终点详细地址&#xff0c;调起地图导航到第三方APP 1、针对单个地址导航 <template><view click"toGetLocation"></view><view click"toNavigation">&…

机器学习20:嵌入-Embeddings

嵌入&#xff08;Embeddings&#xff09;是一个相对低维的空间&#xff0c;我们可以将高维向量转换到其中。嵌入使得对大型输入&#xff08;例如表示单词的稀疏向量&#xff09;进行机器学习变得更加容易。理想情况下&#xff0c;嵌入通过将语义相似的输入紧密地放置在嵌入空间…

在SpringBoot中整合RabbitMQ(19版idea)

首先呢就需要我们在RabbitMQ的可视化端口创建一个虚拟机,我创建的为 xm 1.创建SpringBoot项目 到这里SpringBoot项目就创建成功了 2.创建测试类 Testpublic void testConnection() throws Exception {//1.创建连接工厂ConnectionFactory factory new ConnectionFactory…