混合空间增强

news2025/1/17 23:21:49

  混合图像增强是一种图像处理技术,用于在不损失图像细节的情况下增强图像的对比度和亮度。它通常通过将图像拆分成多个通道,然后对每个通道进行独立处理来实现。

  综合利用平滑滤波,锐化滤波,灰度拉伸等技术对图像进行处理,得到更为理想的效果。

  这里使用人体骨骼扫描图像来说明。具体流程如上图,由于人体全身骨骼扫描图像灰度动态范围很窄,并且有很大的噪声内容,使用单一滤波对其增强效果一般。具体作用如图:

import numpy as np
from skimage import io, filters
from matplotlib import pyplot as plt


# 空间滤波
def corre12d(img, window):
    m = window.shape[0]
    n = window.shape[1]
    # 边界通过0灰度值填充
    img1 = np.zeros((img.shape[0] + m - 1, img.shape[1] + n - 1))
    img1[(m - 1) // 2:(img.shape[0] + (m - 1) // 2), (n - 1) // 2:(img.shape[1] + (n - 1) // 2)] = img
    img2 = np.zeros(img.shape)
    for i in range(img2.shape[0]):
        for j in range(img2.shape[1]):
            tmp = img1[i:i + m, j:j + n]
            img2[i, j] = np.sum(np.multiply(tmp, window))
    return img2


I = io.imread("I3.jpg", as_gray=True)
# 拉普拉斯变换
win = np.array([[-1, -1, -1], [-1, 8, -1], [-1, -1, -1]])
I_lap = corre12d(I, win)
I_lap = 255 * (I_lap - I_lap.min()) / (I_lap.max() - I_lap.min())
# 相加得锐化增强图
I_lap_enhance = I + I_lap
# sobel处理
I_sobel = filters.sobel(I)
# 5*5均值滤波器
win_mean = np.ones((5, 5)) / (5 ** 2)
I_sobel_mean = corre12d(I_sobel, win_mean)
# 相乘得到掩蔽图像
I_mask = I_lap_enhance * I_sobel_mean
# 相加得到锐化增强
I_sharp_enhance = I + I_mask
# 进行灰度幂律变换
I_enhance = I_sharp_enhance ** 0.5
# 显示
I_list = [I, I_lap, I_lap_enhance, I_sobel, I_sobel_mean, I_mask, I_sharp_enhance, I_enhance]

i = 0
for grayI in I_list:
    i = i + 1
    plt.subplot(2, 4, i)
    plt.axis('off')
    plt.title(i)
    plt.imshow(grayI, cmap='gray')
plt.show()

 

从左到右,从上到下依次是:

 1:原始图像:

 2:1拉普拉斯变化后:

   图像全身骨骼扫描,图2为原始图像拉普拉斯变换后的结果,细节信息丰富,同时噪音变多。

 3:原始图像与拉普拉斯变换后图像相加得到拉普拉斯锐化增强图像:

 

 

4:原始图像Sobel处理 :

 

图4为原始图像经过Sobel算子处理后结果,边缘信息丰富。

 5:均值滤波对4进行平滑:

 

图4进行空间平滑滤波得到图5,保留图像边缘信息,同时减小了噪声。

 6:3*5得到的掩蔽图像:

 

将图3与图5相加得到图6,发现图6的强边缘优势和可见噪声相对减少。

7:原图与掩蔽图像相加得到的锐化增强图像:

 

 图像的大部分细节更清晰。

8:对7进行灰度幂律变换得到最终结果:

 

 图8进行幂律变换后增大了一些噪声,但同时人体结构更加清晰完整,人体轮廓清晰度也有一定提高。

 上图更能直观地观察到图像变换后的差异。

  

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

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

相关文章

【Linux】sudo给某条指令提权

sudo1.为什么要有sudo2.使用sudo提权的前提2. 在root下添加普通用户到信任列表3.验证4.总结1.为什么要有sudo 首先我们要知道,普通用户是受Linux的权限约束的。就比如普通用户对自己的家目录有完全管理的权限,但是不能随意查看其他人的家目录&#xff0c…

1.机器学习中的关键组件

1.机器学习中的关键组件 无论什么类型的机器学习问题,都会遇到这些组件: 可以用来学习的_数据_(data);如何转换数据的_模型_(model);一个_目标函数_(objective function…

JavaScript 输出

文章目录JavaScript 输出JavaScript 显示数据使用 window.alert()操作 HTML 元素在本教程中写到 HTML 文档写到控制台您知道吗?JavaScript 输出 JavaScript 没有任何打印或者输出的函数。 JavaScript 显示数据 JavaScript 可以通过不同的方式来输出数据: 使用 wi…

TiDB 6.5 LTS 发版

在 2023 伊始,我们很高兴向大家宣布,TiDB 6.5 LTS 版本已经发布了。这是 TiDB V6 的第二个长期支持版(上一个是 TiDB 6.1),除了携带了诸多备受期待的新特性,同时也将得到 TiDB 开发社区的长期维护&#xff…

设计模式(一):DDD领域驱动设计

DDD重架构,轻业务! – 从单体架构开始快速验证DDD设计模式 贫血模型充血模型防腐层 DDD四层架构规范DDD单体架构和微服务架构隔离 本地单体SPI 插拔式扩展业务模式Nacos 插拔式扩展业务模式 ---- 服务名作为服务service code DDD清晰架构 – 构建领域仓库…

加解密与HTTPS(5)

您好,我是湘王,这是我的CSDN博客,欢迎您来,欢迎您再来~咱们大学读完之后有毕业证书,并且这个证书可以在学信网查询。专业上有注会、CCIE、律师证等,可以在国家职业认证机构或委托机构的网站上查…

【UCIe】UCIe DLP/DLLP 介绍

🔥点击查看精选 UCIe 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0…

DNS协议——域名解析

DNS协议 DNS协议是一个应用层协议,作用是域名解析   使用DNS协议的原因,就是因为哪怕是点分十进制,对于我们都不太友好,因此使用域名来代替IP地址,比如www.baidu.com   最开始的时候,DNS系统只是一个普…

java基于ssm的个人博客系统个人博客网站个人博客项目源码

简介 Java ssm开发的个人博客系统,可以发布博客,照片,站长留言。 演示视频 https://www.bilibili.com/video/BV1sf4y1y7Ne/?share_sourcecopy_web&vd_sourceed0f04fbb713154db5cc611225d92156 技术 mysql,SSM,css,js,jq 功能 简单…

laravel5.5之laravel-admin的使用

目录 一、首先确保安装好了laravel,并且数据库连接设置正确 二、运行下面的命令来发布资源 三 、后台项目文件 四、静态文件 五、访问后台 六、参考文档 一、首先确保安装好了laravel,并且数据库连接设置正确 composer require encore/laravel-adm…

Verilog语法笔记(夏宇闻第三版)-简单的Verilog HDL模块

目录 简单的Verilog HDL程序介绍: 模块的结构 : 模块的端口定义: 模块内容: I/O说明的格式: 内部信号说明: 功能定义: 简单的Verilog HDL程序介绍: 下面先介绍几个简单的Veri…

高可用Keepalived在Linux中的应用

一、高可用 1.高可用介绍 (1)普通理解 两台服务器启动相同的业务系统,当有一台机器宕机,另外一台服务器快速接管服务,对于用户来讲是无感知的。 (2)专业理解 高可用是分布式系统架构设计中必…

Linux安装Docker与基本使用

Docker 常用于服务部署的一种方案 准备 1.云服务器或者虚拟机 2.Centos 系统 3.下载XFtp 和 XShell 安装Docker 首先删除系统中旧版本Docker或者残留文件 #卸载所有 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-lo…

Spring从入门到精通 | 动力节点老杜

目录 一、Spring启示录 1、OCP开闭原则 2、依赖倒置原则(DIP原则) 3、控制反转(重点) 4、Spring框架(重点) 二、Spring概述 Spring的8大模块 ​编辑 Spring特点 1、轻量 2、控制反转IOC 3、面向…

Qt Mac阻止和启用休眠

阻止电脑休眠,在win下是使用win api实现的,用Qt跨平台开发,实现Mac的阻止休眠,也需要Mac本身的api来实现。经过网上查资料,找到了一个能用的,链接如下。原生mac开发用的是Object-c,所以该实现用…

Kyligence 客户案例“泰康集团精细化经营分析与运营平台”获评数据智能最佳实践案例

近日,“2022 爱分析中国数据智能最佳实践案例”评选结果正式揭晓。Kyligence 携手泰康集团申报的“泰康集团精细化经营分析与运营平台”项目经过多轮角逐脱颖而出,最终获评“中国数据智能最佳实践案例”。同时,Kyligence 通过综合能力评估&am…

Linux Shell脚本编程提高

Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shel编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应…

保姆级教程 | 将Oxylabs住宅代理和数据中心代理与MultiLogin集成的操作步骤

MultiLogin是一款集多账户管理、浏览器指纹隐藏等功能于一体的实用解决方案。在您抓取所需公共数据时,将MultiLogin与值得信赖的代理结合使用,可以大幅降低被网站阻止情况发生的概率。 在本篇教程中,将带您学习简单的集成流程,手把…

数说热点 | 2022商业地产的“破局”与“新生”——逆境之下探索新兴可能

2022年,受国内新冠肺炎疫情因素影响,我国经济下行压力明显加大,尤其是部分产业链、供应链受到冲击;部分区域接触型、聚集型特征明显的线下消费表现低迷,给实体商业经营带来挑战。从市场表现看,2022年1-9月&…

数据架构之数据血缘:数据从哪里来,到哪里去

为了直观的感受数据血缘,先从网上找了两张典型的数据血缘的图。下图特点是按照数据仓库数据管理模型给出了基于表(实体)的数据血缘图。 此图是截取Solidatus软件生成的数据血缘图,该图与上图的区别在于给出了基于属性的数据血缘图…