基于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算子,点击确定,能看到锐化后的细节更加明显,不过图像不再平滑,有明显的振铃效应。


 总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值