山东大学软件学院2018级项目实训 第七周-图像锐化

山东大学软件学院2018级项目实训 第七周-图像锐化

设置ui的部分参考前几周的博客
关于图像锐化原理部分可以参考博客

先看图像锐化实现的代码:

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('2.png')
kernel = np.array([[0, -2, 0], [-2, 9, -2], [0, -2, 0]], np.float32) #定义一个核
dst = cv.filter2D(img, -1, kernel=kernel)
cv.imshow("1", dst)
cv.waitKey(0)

基于opencv实现,我们可以做一些修改。
我们可以通过设置滑块改变锐化卷积核的数值:

    if type == 5:
        print('5-图像锐化')
        img = instance.m_image
        # 定义一个核通过获取滑块的value值实时改变卷积核
        kernel = np.array([[0, -value, 0], [-value, value*4+1, -value], 
        [0, -value, 0]], np.float32)  
        dst = cv.filter2D(img, -1, kernel=kernel)
        instance.temp_image_blur = dst

修改函数定义部分:

def blur(instance, type, value):
    # 根据type的类型选择不同模糊方法,比如均值模糊,高斯模糊
    kernel = np.ones((value, value), np.uint8)
    if type == 0:
        print('0-均值模糊')
        instance.temp_image_blur = cv.blur(instance.m_image, (value, value))

    if type == 1:
        print('1-高斯模糊')
        value = value * 2 + 1
        instance.temp_image_blur = cv.GaussianBlur(instance.m_image, (value, value), 0)
    #
    if type == 2:
        print('2-中位模糊')
        value = value * 2 + 1
        instance.temp_image_blur = cv.medianBlur(instance.m_image, value)

    if type == 3:
        print('3-腐蚀')
        instance.temp_image_blur = cv.dilate(instance.m_image, kernel, iterations=1)

    if type == 4:
        print('4-膨胀')
        instance.temp_image_blur = cv.erode(instance.m_image, kernel, iterations=1)

    if type == 5:
        print('5-图像锐化')
        img = instance.m_image
        kernel = np.array([[0, -value, 0], [-value, value*4+1, -value], [0, -value, 0]], np.float32)  # 定义一个核
        dst = cv.filter2D(img, -1, kernel=kernel)
        instance.temp_image_blur = dst

    instance.update_temp_image_for_blur()

下面看一下效果,对模糊图像的锐化效果还是非常不错的
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值