这里写目录标题

    • 本节的目标
  • 背景
    • 灰度变换和空间滤波基础

本节的目标

  • 了解空间域图像处理的意义,以及它与变换域图像处理的区别
  • 熟悉灰度变换所有的主要技术
  • 了解直方图的意义以及如何操作直方图来增强图像
  • 了解空间滤波的原理
import sys
import numpy as np
import cv2
import matplotlib
import matplotlib.pyplot as plt
import PIL
from PIL import Imageprint(f"Python version: {sys.version}")
print(f"Numpy version: {np.__version__}")
print(f"Opencv version: {cv2.__version__}")
print(f"Matplotlib version: {matplotlib.__version__}")
print(f"Pillow version: {PIL.__version__}")
Python version: 3.6.12 |Anaconda, Inc.| (default, Sep  9 2020, 00:29:25) [MSC v.1916 64 bit (AMD64)]
Numpy version: 1.16.6
Opencv version: 3.4.1
Matplotlib version: 3.3.2
Pillow version: 8.0.1
def normalize(mask):return (mask - mask.min()) / (mask.max() - mask.min() + 1e-5)

背景

灰度变换和空间滤波基础

g(x,y)=T[f(x,y)](3.1)g(x, y) = T[f(x, y)] \tag{3.1} g(x,y)=T[f(x,y)](3.1)

式中f(x,y)f(x, y)f(x,y)是输入图像, g(x,y)g(x, y)g(x,y)是输出图像,TTT是在点(x,y)(x, y)(x,y)的一个邻域上定义的针对f的算子。

最小的邻域大小为1×11\times 11×1
则式(3.1)中的TTT称为灰度(也称灰度级或映射)变换函数,简写为如下:
s=T(r)(3.2)s=T(r) \tag{3.2}s=T(r)(3.2)

对比度拉伸

  • 通过将kkk以下的灰度级变暗,并将高于kkk的灰度级变亮,产生比原图像对比度更高的一幅图像

阈值处理函数

  • 小于kkk的处理为0,大于kkk的设置为1,产生一幅二级(二值)图像
# 显示一个图像的3x3邻域
height, width = 18, 18
img_ori = np.ones([height, width], dtype=np.float)# 图像3x3=9个像素赋了不同的值,以便更好的显示
kernel_h, kernel_w = 3, 3
img_kernel = np.zeros([kernel_h, kernel_w], dtype=np.float)
for i in range(img_kernel.shape[0]):for j in range(img_kernel.shape[1]):img_kernel[i, j] = 0.3 + 0.1 * i + 0.1 * j
img_kernel[kernel_h//2, kernel_w//2] = 0.9img_ori[5:5+kernel_h, 12:12+kernel_w] = img_kernelfig = plt.figure(figsize=(7, 7), num='a')
plt.matshow(img_ori, fignum='a', cmap='gray', vmin=0, vmax=1)
plt.show()

为什么会把Sigmoid函数写在这里

从Sigmoid函数的图像曲线来看,与分段线性函数的曲线类似,所以在一定程度上可以用来代替对比度拉伸,这样就不需要输入太多的参数。当然,有时可能也得不到想要的结果,需要自己多做实验。

sigmoid函数也是神经网络用得比较多的一个激活函数。

def sigmoid(x, scale):"""simgoid fuction, return ndarray value [0, 1]param: input x: array like param: input scale: scale of the sigmoid fuction, if 1, then is original sigmoid fuction, if < 1, then the values between 0, 1will be less, if scale very low, then become a binary fuction; if > 1, then the values between 0, 1 will be more, if scalevery high then become a y = x"""y = 1 / (1 + np.exp(-x / scale))return y
# sigmoid fuction plot
x = np.linspace(0, 10, 100)
x1 = x - x.max() / 2        # Here shift the 0 to the x center, here is 5, so x1 = [-5,  5]
t_stretch = sigmoid(x1, 1)
t_binary = sigmoid(x1, 0.001)plt.figure(figsize=(10, 5))
plt.subplot(121), plt.plot(x, t_stretch), plt.title('s=T(r)'), plt.ylabel('$s_0 = T(r_0)$', rotation=0)
plt.xlabel('r'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.plot(x, t_binary), plt.title('s=T(r)'), plt.ylabel('$s_0 = T(r_0)$', rotation=0)
plt.xlabel('r'), plt.xticks([]), plt.yticks([])
plt.tight_layout
plt.show()

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波1 - 灰度变换和空间滤波基础、Sigmoid激活函数相关推荐

  1. 第1章 Python 数字图像处理(DIP) --绪论

    Python 数字图像处理 关于本专栏 此专栏为 Python 数字图像处理(DIP)(冈萨雷斯版),专栏里文章的内容都是来自书里,全部手打,非OCR,因为很多公式,都是用LaTex输入,力求更好看的 ...

  2. 第2章 Python 数字图像处理(DIP) --数字图像基础5 -- 算术运算、集合、几何变换、傅里叶变换等

    目录 数字图像处理所有的基本数字工具介绍 算术运算 集合运算和逻辑运算 空间运算 向量与矩阵运算 图像变换 图像和随机变量 数字图像处理所有的基本数字工具介绍 算术运算 # 相加 img_ori = ...

  3. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波18 - 低通、高通、带阻和带通滤波器、组合使用空间增强方法

    低通.高通.带阻和带通滤波器 得到空间滤波器的第三种方法,生成一维滤波器函数,然后要么使用式(3.42)w=vvTw = vv^Tw=vvT生成二维可分离的滤波器函数,要么旋转这些一维函数来生成二维核 ...

  4. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波17 - 锐化高通滤波器 - 梯度图像(罗伯特,Sobel算子)

    目录 锐化(高通)空间滤波器 使用一阶导数锐化图像-梯度 锐化(高通)空间滤波器 平滑通过称为低通滤波 类似于积分运算 锐化通常称为高通滤波 微分运算 高过(负责细节的)高频,衰减或抑制低频 使用一阶 ...

  5. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波15 - 锐化高通滤波器 -拉普拉斯核(二阶导数)

    目录 锐化(高通)空间滤波器 基础 - 一阶导数和二阶导数的锐化滤波器 二阶导数锐化图像--拉普拉斯 锐化(高通)空间滤波器 平滑通过称为低通滤波 类似于积分运算 锐化通常称为高通滤波 微分运算 高过 ...

  6. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波8 - 直方图处理 - 直方图均衡化(全局直方图均衡化)

    直方图均衡化 灰度映射函数: s=T(r),0≤r≤L−1(3.8)s = T(r), \quad 0\leq r \leq L -1 \tag{3.8}s=T(r),0≤r≤L−1(3.8) 假设: ...

  7. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波16 - 锐化高通滤波器 - 钝化掩蔽和高提升滤波

    目录 锐化(高通)空间滤波器 钝化掩蔽和高提升滤波 锐化(高通)空间滤波器 平滑通过称为低通滤波 类似于积分运算 锐化通常称为高通滤波 微分运算 高过(负责细节的)高频,衰减或抑制低频 钝化掩蔽和高提 ...

  8. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波13 - 平滑低通滤波器 -盒式滤波器核

    这里写目录标题 平滑(低通)空间滤波器 盒式滤波器核 平滑(低通)空间滤波器 平滑(也称平均)空间滤波器用于降低灰度的急剧过渡 在图像重取样之前平滑图像以减少混淆 用于减少图像中无关细节 平滑因灰度级 ...

  9. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波11 - 直方图处理 - 使用直方图统计量增强图像

    使用直方图统计量增强图像 全局均值和方差 μn=∑i=0L−1(ri−m)np(ri)(3.24)\mu_{n} = \sum_{i=0}^{L-1} (r_{i} - m)^{n} p(r_{i}) ...

最新文章

  1. 根据id/类名/元素名称查找元素
  2. dropout与lstm的结合使用
  3. java动态加载jar文件并执行方法
  4. 武汉大学计算机学院 情感分析,跨语言情感分析方法研究
  5. python中类里self_Python类中的self到底是干啥的
  6. proxy_cache的使用
  7. hrbust 哈理工oj 网线【MST+Prim】
  8. 团队想招人,如何说服公司?写一封这样的人员招聘申请邮件,再看效果!
  9. 计算机图形学——反走样技术
  10. 5G核心网技术基础自学系列 | EPC的主要功能
  11. 【Git】回退 commit 版本详解
  12. 爬虫用fiddler抓取网易新闻客户端手机app内容
  13. linux安装程序企鹅,Linux-小企鹅输入法的安装与使用
  14. Android移动开发——全方面分析 Hilt 和 Koin 性能
  15. 超融合究竟带来了什么 超融合方案有哪些优势 企业超融合方案怎么做?
  16. JS实现国家、省、市
  17. Headlike设计模式幕布笔记
  18. c语言循环左移程序,C语言中关于循环左移和循环右移
  19. excel熵值法计算权重_SPSS主成分分析 | 指标权重值计算真的不难!(上)
  20. 【JavaScript】JS执行机制--同步与异步

热门文章

  1. 操作系统原理之内存管理(第四章第二部分)
  2. Spring Cloud(F版)搭建高可用服务注册中心
  3. java-number
  4. 使用EasyNetQ组件操作RabbitMQ消息队列服务
  5. ThinkJS前端搭配vue时的Nginx配置
  6. react Native 环境安装配置——图解版一目了然
  7. SmartGit使用教程
  8. 2019前端必会黑科技之PWA
  9. PHP 实现图片验证码
  10. 网易试题——关于箭头函数与this和arguments的关系