第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}) \tag{3.24}μn=i=0L1(rim)np(ri)(3.24)
m=∑i=0L−1rip(ri)(3.25)m = \sum_{i=0}^{L-1} r_{i} p(r_{i}) \tag{3.25}m=i=0L1rip(ri)(3.25)
σ2=μ2=∑i=0L−1(ri−m)2p(ri)(3.26)\sigma^{2} = \mu_{2} = \sum_{i=0}^{L-1} (r_{i} - m)^{2} p(r_{i}) \tag{3.26}σ2=μ2=i=0L1(rim)2p(ri)(3.26)

邻域均值和方差
SxyS_{xy}Sxy是以(x,y)(x, y)(x,y)为中心的一个规定大小的邻域
mSxy=∑i=0L−1riPSxy(ri)(3.27)m_{S_{xy}} = \sum_{i=0}^{L-1}r_{i} P_{S_{xy}}(r_{i}) \tag{3.27}mSxy=i=0L1riPSxy(ri)(3.27)
σSxy2=∑i=0L−1(ri−mSxy)2PSxy(ri)(3.28)\sigma_{S_{xy}}^2 = \sum_{i=0}^{L-1} (r_{i} - m_{S_{xy}})^2 P_{S_{xy}}(r_{i}) \tag{3.28}σSxy2=i=0L1(rimSxy)2PSxy(ri)(3.28)

g(x,y)={Cf(x,y),k0mG≤mSxy≤k1mGANDk2σG≤σSxy≤k3σGf(x,y),others(3.29)g(x, y) =\begin{cases} Cf(x,y), & k_0 m_G \leq m_{S_{xy}} \leq k_1 m_G \;\text{AND}\; k_2 \sigma_G \leq \sigma_{S_{xy}} \leq k_3 \sigma_G \\ f(x,y), & \text{others}\end{cases} \tag{3.29}g(x,y)={Cf(x,y),f(x,y),k0mGmSxyk1mGANDk2σGσSxyk3σGothers(3.29)

k0,k1,k2,k3,Ck_0, k_1, k_2, k_3, Ck0,k1,k2,k3,C选择的一些方法:
如果 我们的关注点是比平均灰度的1/4更暗的区域,那么选择k0=0,k1=0.25k_0=0, k_1=0.25k0=0,k1=0.25。如果我们的兴趣是增强那么对比度比较低的区域,则k2=0,k3=0.1k_2=0, k_3=0.1k2=0,k3=0.1
满足条件的乘以一个规定常数CCC,增大(或减小)其相对于图像剩下部分的灰度。

下图像中mG=161,σG=103m_G = 161, \sigma_G = 103mG=161,σG=103,图像和待增强区域的最大灰度值分别是是228和10,最小值是为。我们希望增强后的特征的最大值与图像的最大值相同,因此选择C=22.8C=22.8C=22.8

def histogram_statistic(img_ori, grid_size = (3, 3), k0 = 0., k1 = 0.1, k2 = 0., k3 = 0.1, C = 22.8):"""Histogram statistic enhance local imageparam: input img_ori: uint8[0, 255] grayscal imageparam: grid size : size of the sliding window, default is [3, 3]"""m_G = np.round(np.mean(img_ori)).astype(int)sigma_G = np.round(np.std(img_ori)).astype(int)
#     max_img = img_ori.max()
#     min_img = img_ori.min()
#     img_roi = img_ori[12:120, 12:120]
#     max_roi = img_roi.max()
#     print(f'Global mean -> {m_G}, Global sigma -> {sigma_G}, Max -> {max_img}, Min -> {min_img}, ROI Max -> {max_roi}')img_dst = img_ori.copy()height, width = img_ori.shapem = grid_size[0]n = grid_size[1]for h in range(height):for w in range(width):temp = img_ori[h:h+m, w:w+n]temp_mean = np.round(np.mean(temp)).astype(int)temp_sigma = np.round(np.std(temp)).astype(int)if k0 * m_G <= temp_mean <= k1 * m_G and k2 * sigma_G <= temp_sigma <= k3 * sigma_G:temp = (C * temp)img_dst[h:h+m, w:w+n] = tempreturn img_dst
# 使用直方图统计增强局部图像
img_ori = cv2.imread('DIP_Figures/DIP3E_Original_Images_CH03/Fig0326(a)(embedded_square_noisy_512).tif', 0)
m_G = np.round(np.mean(img_ori)).astype(int)
sigma_G = np.round(np.std(img_ori)).astype(int)
max_img = img_ori.max()
min_img = img_ori.min()
img_roi = img_ori[12:120, 12:120]
max_roi = img_roi.max()
print(f'Global mean -> {m_G}, Global sigma -> {sigma_G}, Max -> {max_img}, Min -> {min_img}, ROI Max -> {max_roi}')# ROI 区域的最小值是11, 228/11=20.72,即20.8,实现看起来效果也不错
img_dst = histogram_statistic(img_ori, C=20.8)plt.figure(figsize=(15, 6))
plt.subplot(1, 3, 1), plt.imshow(img_ori, cmap='gray', vmin=0, vmax=255), plt.title('Original')
plt.subplot(1, 3, 2), plt.imshow(img_dst, cmap='gray', vmin=0, vmax=255), plt.title(f'Histogram statistic')
plt.tight_layout()
plt.show()
Global mean -> 161, Global sigma -> 103, Max -> 228, Min -> 0, ROI Max -> 11

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU - 1723 - Distribute Message

先上题目&#xff1a; Distribute Message Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1186 Accepted Submission(s): 547 Problem DescriptionThe contest’s message distribution is a big thing in pre…

nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...

你在用什么软件进行图像处理呢&#xff1f;厌倦了鼠标和手指的拖拖点点&#xff0c;想不想用程序和代码进行图像的高效处理&#xff0c;Python作为简单高效又很强大的一门编程语言&#xff0c;对于图像的处理自然也是轻松拿下&#xff0c;听起来是不是很酷很极客&#xff0c;那…

创建一个追踪摄像机(2)

为了生成曲线&#xff0c;函数需要通过4个在沿着重量值在0和1之间的路径上连贯的位置。由于重量在这些2个值之间增加&#xff0c;曲线返回在更远的路径上的坐标。 当所提供的重量值为0&#xff0c;曲线将返回正确的坐标在第二个输入坐标。当所提供的重量值为1&#xff0c;曲线将…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波12 - 空间域滤波基础 - 卷积运算(numpy 实现的三种卷积运算)

这篇文章比较长&#xff0c;请耐心看空间域滤波基础线性滤波可分离滤波器核空间域滤波和频率域滤波的一些重要比较如何构建空间滤波器第一种卷积方法&#xff08;公式法&#xff09;第二种卷积的方法&#xff08;可分离核&#xff09;第三种方法&#xff08;img2col)这是分离核…

hdu_1861_游船出租_201402282130

游船出租 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7238 Accepted Submission(s): 2411 Problem Description 现有公园游船租赁处请你编写一个租船管理系统。当游客租船时&#xff0c;管理员输入船号并按…

acer清理工具 clear下载_SolidWorks绿色版下载-SolidWorks完全清理工具v1.0免费版

SolidWorks完全清理工具(SWCleanUninstall)是一款绿色免费的SolidWorks完全卸载工具。很多SolidWorks安装不成功都是因为之前安装错误做成软件残留。这款工具可以完全清理很多SolidWorks留下的注册表垃圾。软件核心功能1、SWCleanUninstall可以直接删除电脑上的SolidWorks软件2…

ZOJ1221 Risk 图形的遍历

一开始做图形遍历的题都是用链表做的&#xff0c;这次用数组体会到了方便但就是有点浪费。 不过题目给的内存限制已经足够了。 View Code 1 #include<cstdio>2 #include<cstdlib>3 #include<cstring>4 #include<queue>5 #include<iostream>6 7 …

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

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

WPF 窗体设置

WPF 当窗体最大化时控件位置的大小调整&#xff1a; View Code 1 <Window x:Class"WpfApplication1.MainWindow"2 xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"3 xmlns:x"http://schemas.microsoft.com/wi…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波14 - 平滑低通滤波器 -高斯滤波器核的生成方法

目录平滑&#xff08;低通&#xff09;空间滤波器低通高斯滤波器核统计排序&#xff08;非线性&#xff09;滤波器平滑&#xff08;低通&#xff09;空间滤波器 平滑&#xff08;也称平均&#xff09;空间滤波器用于降低灰度的急剧过渡 在图像重取样之前平滑图像以减少混淆用…

python3.7怎么安装turtle_python怎么安装turtle

turtle库是Python语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的控制&#xff0c;在这个平面坐标系中移动&#xff0c;从而在它爬行的路径上绘制了图…

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

目录锐化&#xff08;高通&#xff09;空间滤波器基础 - 一阶导数和二阶导数的锐化滤波器二阶导数锐化图像--拉普拉斯锐化&#xff08;高通&#xff09;空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过&#xff08;负责细节的&#xff09;高频…

在python是什么意思_python 的 表示什么

python代码里经常会需要用到各种各样的运算符&#xff0c;这里我将要和大家介绍的是Python中的&&#xff0c;想知道他是什么意思吗&#xff1f;那就和小编一起来了解一下吧。&是位运算符-与&#xff0c;类似的还有|&#xff08;或&#xff09;&#xff0c;!(非)。 整数…

DevExpress控件GridControl中的布局详解 【转】

DevExpress控件GridControl中的布局详解 【转】 2012-10-24 13:27:28| 分类&#xff1a; devexpress | 标签&#xff1a;devexpress |举报|字号 订阅 http://www.cnblogs.com/martintuan/archive/2011/03/05/1971472.html 进行DevExpress控件GridControl的使用时&#xff…

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

目录锐化&#xff08;高通&#xff09;空间滤波器钝化掩蔽和高提升滤波锐化&#xff08;高通&#xff09;空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过&#xff08;负责细节的&#xff09;高频&#xff0c;衰减或抑制低频 钝化掩蔽和高提…

python画圆并填充图形颜色_如何使用python设计语言graphics绘制圆形图形

在python设计语言中&#xff0c;可以利用第三方包graphics绘制不同的图形&#xff0c;有圆形、直线、矩形等。如果想要绘制一个圆形&#xff0c;可以设置圆形的半径和坐标位置。下面利用一个实例说明绘制圆形&#xff0c;操作如下&#xff1a;工具/原料 python 截图工具 方法/步…

设计模式学习-工厂方法模式

在上文(设计模式学习-简单工厂模式)的模拟场景中&#xff0c;我们用简单工厂模式实现了VISA和MASTERARD卡的刷卡处理&#xff0c;系统成功上线并运行良好&#xff0c;突然有一天老大跑来说&#xff0c;我们的系统需要升级&#xff0c;提供对一般银联卡的支持。怎么办&#xff1…

word2010激活工具使用方法

1、关闭杀毒&#xff0c;关闭正打开着的word文档 2、执行Activator_v1.2.exe-->Activation Office 2010VL --》按1 --》完毕。 3、打开word--》文件--》帮助--》看右上角。 2、【补充】使用 Office 2010 Toolkit 下载地址&#xff1a; http://vdisk.weibo.com/s/yoz9R 或…

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

目录锐化&#xff08;高通&#xff09;空间滤波器使用一阶导数锐化图像&#xff0d;梯度锐化&#xff08;高通&#xff09;空间滤波器 平滑通过称为低通滤波类似于积分运算锐化通常称为高通滤波微分运算高过&#xff08;负责细节的&#xff09;高频&#xff0c;衰减或抑制低频…