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

这篇具有很好参考价值的文章主要介绍了基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

基于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.编写和测试


前言

图像边缘显示也就是图像边缘检测,常用于图像锐化等图像增强算法,图像锐化就是边缘检测后增强,其实是边缘检测的一种运用。


一、是什么?

        图像边缘检测是指通过计算图像中像素值变化的梯度或差异来识别出图像中物体的边缘。常用的边缘检测算法有Sobel算子、Prewitt算子、Laplacian算子、Canny算子等。这些算子通过对图像中像素的灰度值或颜色值进行差分运算,找出像素值变化较大的区域,从而得到图像中物体的边缘信息。边缘检测在图像处理与计算机视觉领域中有着广泛的应用,例如目标检测、图像分割、人脸识别等。

二、开发步骤和演示

1.怎么实现

        和前面锐化一样,直接调用opencv的梯度算子即可,

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博客

②,算法开发实现

和锐化不同的是,这里支持检测边缘,不需要原图像无边缘的信息,所以进行梯度检测后,直接将检测后的结果显示出来即可。

#图像Sobel检测
def proc_image_sobel_detect(image_rgb):
    print("proc_image_sobel_detect,")
    result = cv2.Sobel(image_rgb,cv2.CV_64F,0,1,ksize=5)
    #sobel处理后数据为浮点数,需要转为整数
    result = np.around(result)
    result = result.clip(0, 255).astype('uint8')
    #cv2.imshow("sobel",result)
    return result

#图像Laplacian
def proc_image_laplacian_detect(image_rgb):
    print("proc_image_laplacian_detect,")
    result = cv2.Laplacian(image_rgb,cv2.CV_64F)
    #需要转为整数
    result = np.around(result)
    result = result.clip(0, 255).astype('uint8')
    return result

#图像Scharr
def proc_image_scharr_detect(image_rgb):
    print("proc_image_scharr_detect,")
    result = cv2.Scharr(image_rgb,cv2.CV_64F,0,1)
    # 需要转为整数
    result = np.around(result)
    result = result.clip(0, 255).astype('uint8')
    print("result:", result.shape)
    return result

#图像Canny
def proc_image_canny_detect(image_rgb):
    print("proc_image_canny_detect,")
    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)
    return result

③,演示

导入原图像

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

 点击图像边缘,选择算子,再点击确定,即可在右边显示梯度算子处理后的图像。

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

 下面是四种梯度算子处理后的图像差异,不同算法的差异还和梯度算子参数有关。

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

 


 总结

图像边缘检测原理就是求图像梯度,梯度检测原理就是离散函数求导。文章来源地址https://www.toymoban.com/news/detail-577350.html

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

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

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

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

    2023年04月09日
    浏览(31)
  • 基于PyQt5的UI界面开发——信号与槽

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

    2024年02月16日
    浏览(34)
  • 基于PyQt5的图形化界面开发——队列动画演示

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

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

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

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

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

    2024年02月16日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包