学习笔记:Opencv实现拉普拉斯图像锐化算法

2023.8.19

为了在暑假内实现深度学习的进阶学习,Copy大神的代码,记录学习日常

图像锐化的百科:

图像锐化算法-sharpen_lemonHe_的博客-CSDN博客
在环境配置中要配置opencv:

pip install opencv-contrib-python

Code and lena.png:注意你是否在data下由lena.png

复制代码
# -*-  coding: utf-8 -*-
# Author : Vincent
# Time   : 2018-05-19
# Func   : Laplacian Sharpen

from PIL import Image
import numpy as np

# 读入原图像
img = Image.open('./data/lena.png')
# img.show()

# 为了减少计算的维度,因此将图像转为灰度图
img_gray = img.convert('L')
img_gray.show()

# 得到转换后灰度图的像素矩阵
img_arr = np.array(img_gray)
h = img_arr.shape[0]  # 行
w = img_arr.shape[1]  # 列

# 拉普拉斯算子锐化图像,用二阶微分
new_img_arr = np.zeros((h, w))  # 拉普拉斯锐化后的图像像素矩阵
for i in range(2, h-1):
    for j in range(2, w-1):
        new_img_arr[i][j] = img_arr[i+1, j] + img_arr[i-1, j] + \
                            img_arr[i, j+1] + img_arr[i, j-1] - \
                            4*img_arr[i, j]

# 拉普拉斯锐化后图像和原图像相加
laplace_img_arr = np.zeros((h, w))  # 拉普拉斯锐化图像和原图像相加所得的像素矩阵
for i in range(0, h):
    for j in range(0, w):
        laplace_img_arr[i][j] = new_img_arr[i][j] + img_arr[i][j]

img_laplace = Image.fromarray(np.uint8(new_img_arr))
img_laplace.show()

img_laplace2 = Image.fromarray(np.uint8(laplace_img_arr))
img_laplace2.show()

附上lena.png

效果所示(解读):

第一张lena是将三通道的RGB图转换为单通道的灰度图,第二张lena是用二阶拉普拉斯微分算子锐化的图像,第三张lena是用拉普拉斯锐化后图像和原图像相加所得的图像

相关推荐
三品吉他手会点灯34 分钟前
C语言学习笔记 - 20.C编程预备计算机专业知识 - 变量为什么必须的初始化【重点】
c语言·笔记·学习
kobesdu38 分钟前
【ROS2实战笔记-12】rosshow:终端里的盲文可视化与无头机器人的现场调试
笔记·机器人·ros·移动机器人
sakiko_1 小时前
UIKit学习笔记1-创建项目(使用UIKit)、使用组件
笔记·学习
生信碱移1 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业2 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
星幻元宇VR3 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
_李小白3 小时前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习
智者知已应修善业4 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
JasmineX-14 小时前
数据结构(笔记)——双向链表
c语言·数据结构·笔记·链表
harder3214 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式