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

这篇具有很好参考价值的文章主要介绍了基于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

③,演示

导入图像

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

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

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


 总结

锐化能够细化细节,但是影响图像的平滑性,并且可能增大噪声。文章来源地址https://www.toymoban.com/news/detail-524352.html

到了这里,关于基于PyQt5的桌面图像调试仿真平台开发(8)锐化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)亮度处理 基于PyQt5的桌

    2024年02月12日
    浏览(42)
  • 《PyQt5桌面应用开发》结束语

    这个系列从五月初期写到现在,一共写了21篇,基本上把我个人感觉里面PyQt5中比较有意思的内容都涉及到了。总的来说,一大部分是我很满意的,也是我在使用PyQt5中感觉到的痛点与花费了很常见去看文档的部分。也有不满意的地方,那就是所有的都写得很浅很浅。只能是做

    2024年02月11日
    浏览(53)
  • PyQt5桌面应用开发(10):界面布局基本支持

    PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌面应用开发(3):并行设计 PyQt5桌面应用开发(4):界面设计 PyQt5桌面应用开发(5):对话框 PyQt5桌面应用开发(6):文件对话框 PyQt5桌面应用开发(7):文本编辑+语法高亮与行号 PyQt5桌面应用开

    2024年02月03日
    浏览(37)
  • PyQt5桌面应用开发(16):定制化控件-QPainter绘图

    PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌面应用开发(3):并行设计 PyQt5桌面应用开发(4):界面设计 PyQt5桌面应用开发(5):对话框 PyQt5桌面应用开发(6):文件对话框 PyQt5桌面应用开发(7):文本编辑+语法高亮与行号 PyQt5桌面应用开

    2024年02月06日
    浏览(57)
  • PyQt5桌面应用开发(21):界面设计结果自动测试(二)

    PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌面应用开发(3):并行设计 PyQt5桌面应用开发(4):界面设计 PyQt5桌面应用开发(5):对话框 PyQt5桌面应用开发(6):文件对话框 PyQt5桌面应用开发(7):文本编辑+语法高亮与行号 PyQt5桌面应用开

    2024年02月09日
    浏览(44)
  • 界面开发(4)--- PyQt5实现打开图像及视频播放功能

    上篇文章主要介绍了如何实现登录界面的账号密码注册及登录功能,还简单介绍了有关数据库的连接方法。这篇文章我们介绍一下如何在设计的页面中打开本地的图像,以及实现视频播放功能。 为了便于记录实现细节,我们尽量一步步地来。之前的文章已经介绍过如何将新的

    2023年04月09日
    浏览(45)
  • 基于PyQt5的图形化界面开发——队列动画演示

    本文使用PyQt5制作图形化界面演示数据结构中的 队列 操作,与上一节队列动画相对应 基于PyQt5的图形化界面开发——队列动画演示 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库:PyQt5 队列(Queue)是一种常用的数据结构,类似于现

    2024年02月07日
    浏览(55)
  • 基于PyQt5的UI界面开发——信号与槽

    PyQt5采用了一种被称为“信号与槽”机制的编程模式,用于处理对象间的通信和事件处理。在PyQt5中,信号(signal)是对象发出的特定事件,例如按钮被点击、文本被修改等。而槽(slot)是与信号相关联的特定动作或函数。当信号被触发时,与之相关联的槽会被自动调用。 槽

    2024年02月16日
    浏览(47)
  • 基于PyQt5的图形化界面开发——自制ssh工具

    本节我们使用PyQt5来制作一个简单的ssh小工具。 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库: PyQt5 和 paramiko 本节需要安装第三方库PyQt5和paramiko,如果你并不熟悉第三方库的安装,你可以参考以下文章来学习: Python第三方库安装

    2024年02月06日
    浏览(43)
  • 基于PyQt5的UI界面开发——对基本控件的介绍

    在PyQt中,控件是用户界面上的可见元素。控件可以包括按钮、标签、文本框、进度条等。每个控件都有自己的属性和方法,可以通过编程方式进行调整和操作。 以下是一些常用的PyQt控件: QLabel(标签):用于显示文本或图片的静态控件。 QPushButton(按钮):用于触发特定动

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包