高通滤波器,低通滤波器

1.高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。 

import cv2
import numpy as np
from scipy import ndimagekernel_3_3 =np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])
print(kernel_3_3)
kernel_5_5 =np.array([[-1,-1,-1,-1,-1],[-1,1,2,1,-1],[-1,2,4,2,-1],[-1,1,2,1,-1],[-1,-1,-1,-1,-1]])img =cv2.imread("x.jpg",0)
k3=ndimage.convolve(img,kernel_3_3)
print(k3)
k5=ndimage.convolve(img,kernel_5_5)blurred=cv2.GaussianBlur(img,(11,11),0)
g_hpf=img - blurred
cv2.imshow("3*3",k3)
cv2.imshow("5*5",k5)
cv2.imshow("g_hpf",g_hpf)
cv2.waitKey()
cv2.destroyAllWindows()

 确实容易看出,第三种效果最好。

2.

import cv2
import numpy as np
from scipy import ndimageblurKsize=7
edgeKsize=5
src=cv2.imread("x.jpg")
#模糊函数,对去除数字化的视频噪声很有效,尤其是彩色图像的噪声
blurredSrc=cv2.medianBlur(src,blurKsize)
cv2.imshow('blurredSrc',blurredSrc)
cv2.waitKey(0)
#彩色图转灰度图
graySrc=cv2.cvtColor(blurredSrc,cv2.COLOR_BGR2GRAY)
cv2.imshow('graySrc',graySrc)
cv2.waitKey(0)
#边缘检测函数,会产生明显的边缘线条
cv2.Laplacian(graySrc,cv2.CV_8U,graySrc,edgeKsize)
cv2.imshow('LapSrc',graySrc)
cv2.waitKey(0)#黑转白,白转黑
normalizedInverseAlpha =(1.0/255)*(255 - graySrc)
cv2.imshow('normalizedSrc',normalizedInverseAlpha)
cv2.waitKey(0)#重新恢复彩色,实现更清晰的轮廓图
channels=cv2.split(src)
for channel in channels:channel[:]=channel*normalizedInverseAlpha
dst=src.copy()
cv2.merge(channels,dst)
cv2.imshow('dst',dst)
cv2.waitKey(0)

使用medianBlur()作为模糊函数,它对去除数字化的视频噪声非常有效。 

从BGR色彩空间转灰度色彩空间

 使用Laplacian()作为边缘检测函数,它会产生明显的边缘线条 

 

转化为黑色边缘和白色背景的图像

 

 归一化:

 3.(1)锐化 

import cv2
import numpy as npsrc=cv2.imread("x.jpg")
kernel=np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])
dst=src.copy()
cv2.filter2D(src,-1,kernel,dst)
cv2.imshow("pic",dst)
cv2.waitKey(0)

kernel=np.array([[-1,-1,-1],
                 [-1,9,-1],
                 [-1,-1,-1]])

如果感兴趣的像素已经与其邻近的像素有一点差别,那么这个差别会增加。

这样会让图像锐化。

filter2D()运用由用户指定的任意核或卷积矩阵。  

(2)边缘检测 

 

kernel=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]])

此时为边缘检测核(权重加起来为0,把边缘转为白色,把非边缘区域转为黑色)

 (3)模糊效果

kernel=np.array([[0.04,0.04,0.04,0.04,0.04],[0.04,0.04,0.04,0.04,0.04],[0.04,0.04,0.04,0.04,0.04],[0.04,0.04,0.04,0.04,0.04],[0.04,0.04,0.04,0.04,0.04]])

通常权重为1,邻近像素的权重全为正。

 (4)模糊加锐化(产生脊状或浮雕效果)

kernel=np.array([[-2,-1,0],[-1,1,1],[0,1,2]])

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

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

相关文章

python操作MongoDB数据库入门

MongoDB是一种非关系型数据库(NoSQL),其以文档形式存储数据,这些文档集合在一起就是一个数据库。MongoDB的表现形式非常灵活,它的表现形式可以是JSON形式的键值对。Python中的pymongo库是MongoDB的官方驱动库&#xff…

音视频技术开发周刊 | 304

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 更强的Llama 2开源,可直接商用:一夜之间,大模型格局变了 Meta 终于发布了大家期待已久的免费可商用版本 Llama 2。 6000份问卷透露出AI…

ClickHouse目录结构

默认安装路径:/var/lib/clickhouse/ 目录结构: 主要介绍metadata和data metadata 其中的default、system及相应的数据库,.sql文件即数据库创建相关sql语句 进入default数据库(默认数据库): 可以看到数据库…

「如何优雅有效利用周末和下班时间?」

文章目录 每日一句正能量前言下班的时间规划周末的时间规划提升周末体验感的好方法怎样才能获得充分的休息后记 每日一句正能量 眼望古城街尽,心谱落愁无序,旧时的誓言,曾而相似,河水在遵循河道的指引下,在曲折前进中放…

零基础学习编程(前端、Java、Python、大数据……)的一些建议

一、学习要明确动机和方向,有强烈的学习欲望 就自学前端来说,很多时候你其实都是孤独的,不知道到底学得怎么样,除非有强烈的欲望,不然大部分的新手很容易就会半途而废。 首先,要想明白自己学习编程的强烈…

QT学习笔记-QT5.15 + MSVC编译套件时编译日志及运行日志日志乱码解决

QT学习笔记-QT5.15 MSVC编译套件时编译日志及运行日志日志中文乱码解决 0、基础环境1、QtCreator中的基本设置编辑->首选项->文本编辑器 2、问题1:MSVC编译日志乱码问题解决问题描述解决方法 3、问题2:MSVC构建套件编译后程序运行日志乱码问题问题…

【电影推荐系统】实时推荐

概览 技术方案: 日志采集服务:通过利用Flume-ng对业务平台中用户对于电影的一次评分行为进行采集,实时发送到Kafka集群。消息缓冲服务:项目采用Kafka作为流式数据的缓存组件,接受来自Flume的数据采集请求。并将数据推…

单片机遇到“auto segment too large“怎么办

遇到这个情况有可能是某一个数组太大,然后单片机内部数据存储区不够用, 所以可以把这个数据存在单片机外例如 int led[8][8]{ {1,1,1,1,1,1,1,1},//1 {1,0,0,0,0,0,0,1},//2 {1,0,0,0,0,0,0,1},//3 {1,0,0,0,0,0,0,1},…

Android View 初始化完成后,如果再调用measure再设置点击事件则点击事件会失效的解决方案

比如LinearLayout 或RecyclerView 我们在初始化完成并加载完数据后再次调用measure计算高度再setLayoutParams 会导致后面设置的点击事件失效。 比如: RecyclerView rv_select dialog.findViewById(R.id.rv_select); //点击事件rv_select.setOnItemClickListener(n…

php5.6的yum安装

目录 1. 卸载老版本php5.4 2. 检查还有没有php 3.安装扩展源 4. 安装remi源 5. 安装yum-config-manager管理工具 6. 安装php 7. 安装php进程管理器 8. 开启php-fpm 9.查看安装的包,查看版本 1. 卸载老版本php5.4 rpm -qa | grep php* yum remove php* 2.…

深度学习:使用全连接神经网络FCN实现MNIST手写数字识别

1 引言 本项目构建了一个全连接神经网络(FCN),实现对MINST数据集手写数字的识别,没有借助任何深度学习算法库,从原理上理解手写数字识别的全过程,包括反向传播,梯度下降等。 2 全连接神经网络介绍 2.1 什么是全连接…

maven引入本地jar包的简单方式【IDEA】【SpringBoot】

前言 想必点进来看这篇文章的各位,都是已经习惯了Maven从中央仓库或者阿里仓库直接拉取jar包进行使用。我也是🤡🤡。 前两天遇到一个工作场景,对接三方平台,结果对方就是提供的一个jar包下载链接,可给我整…

SpringBoot使用MyBatis Plus + 自动更新数据表

1、Mybatis Plus介绍 Mybatis,用过的都知道,这里不介绍,mybatis plus只是在mybatis原来的基础上做了些改进,增强了些功能,增强的功能主要为增加更多常用接口方法调用,减少xml内sql语句编写,也可…

python使用selenium 打开谷歌浏览器闪退, 怎么解决

问题描述: 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 使用 Selenium 操作 Chrome 浏览器, Chrome 浏览器闪退 问题解决: 可能是以下几个方面出现了问题: 1. Chromedriver 版本与 Chrome 浏览器版本不匹配 你需要确保你正在…

安卓:JzvdStd——网络视频播放器

目录 一、JzvdStd介绍 JzvdStd的特点和功能: JzvdStd常用方法: 二、JzvdStd使用 1、补充知识: 例子: MainActivity : VideoPageAdapter : activity_main: video_page: …

第十次CCF计算机软件能力认证

第一题:分蛋糕 小明今天生日,他有 n 块蛋糕要分给朋友们吃,这 n 块蛋糕(编号为 1 到 n)的重量分别为 a1,a2,…,an。 小明想分给每个朋友至少重量为 k 的蛋糕。 小明的朋友们已经排好队准备领蛋糕,对于每个朋…

Blazor前后端框架Known-V1.2.9

V1.2.9 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。 Gitee: https://gitee.com/known/KnownGithub:https://github.com/known/Known 概述 基于C#和Blazor…

UE4 unlua学习笔记

将这三个插件放入Plugins内并重新编译 创建一个BlueprintLibrary,声明一个全局函数 在这里声明路径 点击Create Lua Template 在Content的Script即可生成对应的lua文件打开它! 显示以上lua代码 打印Hello Unlua 创建该UI,就会在创建UI的Con…

Flutter-基础Widget

Flutter页面-基础Widget 文章目录 Flutter页面-基础WidgetWidgetStateless WidgetStateful WidgetState生命周期 基础widget文本显示TextRichTextDefaultTextStyle 图片显示FlutterLogoIconImageIamge.assetImage.fileImage.networkImage.memory CircleAvatarFadeInImage 按钮R…

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

申报签署流程详解 火山引擎DataLeap SLA保障的前提是先达成SLA协议。在SLA保障平台中,以 申报单签署的形式达成SLA协议。平台核心特点是 优化了SLA达成的流程,先通过 “系统卡点计算”减少待签署任务的数量,再通过 “SLA推荐计算”自动签署部…