OpenCV实现运动模糊(个人笔记)

OpenCV实现运动模糊图像的模拟 产生模糊和噪声的原因有很多,比如拍摄环境的不稳定、拍摄设备的不精密、拍摄对象的快速运动、空气气流的扰动、储存与传输过程电路产生的错误等,本文要考虑的是由于拍摄对象和拍摄设备相对运动引起的运动模糊。关于噪声,其种类和产生的原因也是多种多样,比如白噪声、椒盐噪声、闪烁噪声、褐色噪声等。由于本文关注的重点在于对运动模糊的处理,所以对噪声统一处理为加性的随机噪声。 运动模糊的数学原理 运动模糊,是在拍 阅读详情
import cv2 as cv
import numpy as np


def motion_blur(image, kernel_size, angle):
    M = cv.getRotationMatrix2D((kernel_size // 2, kernel_size // 2), angle, 1)
    motion_blur_kernel = np.diag(np.ones(kernel_size))
    motion_blur_kernel = cv.warpAffine(motion_blur_kernel, M, (kernel_size, kernel_size))

    motion_blur_kernel = motion_blur_kernel / kernel_size
    blur = cv.filter2D(image, -1, motion_blur_kernel)

    cv.normalize(blur, blur, 0, 255, cv.NORM_MINMAX)

    return blur


if __name__ == "__main__":
    img = cv.imread("./data/bird.jpg")
    cv.imshow("src", img)

    while True:
        k_size = np.random.choice(np.arange(5, 12, 2))
        ang = np.random.choice(np.arange(-45, 45))

        res = motion_blur(np.copy(img), k_size, ang)

        cv.imshow("res", res)
        if cv.waitKey() & 0xFF == ord('q'):
            break

 

【OpenCV】工业视觉中如何避免运动模糊 运动模糊是在工业相机的曝光期间,由于对象移动或振动而引起的。当对象在曝光期间移动超过0.5像素时,图像将出现运动模糊。 阅读详情

相关推荐

Opencv 实现 运动模糊的添加(motion blur)与消除(demotion blur)

此代码用于实现模糊运动的添加与消除。原理:在已知模糊运动核的前提下,可通过核线性卷积的形式对图像添加运动模糊,           反之也可利用该核精确的去除该运动模糊。说明:本例代码是在梳理前人代码的基础上整理得到,仅使用了C++常用库与opencv2.4.5          AddMotionBlur的createLinearFilter函数在opencv3+版本中已经去除,故而建议只用op...

xiequnyi的博客 1万+

利用维纳滤波对运动模糊图像进行复原

一、概要 本文首先给出图像的维纳滤波器的推导过程用以补充书中缺失的证明过程,而后在C++的编译环境下,利用opencv构造维纳滤波器实现运动模糊图像的图像复原,并结合代码给出算法流程,最后在本文末给出全部代码。 二、图像的维纳滤波原理 三、构造退化函数 这部分冈萨雷斯所著的数字信号处理第三版已经给出了建模过程,因此这里直接引用书本上给出的运动模糊函数的推导过程。如下所示: 在这里应当注意:实际操作中往往会将图像的频谱中心化,因此进行图像模拟退化时所使用的退化函数也应当中心化。设原始图像大小为M·N

军魂的博客 1万+

OpenCV图像运动模糊

def motion_blur(img, degree=10, angle=20): image = img.copy() # 这里生成任意角度的运动模糊kernel的矩阵, degree越大,模糊程度越高 M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle, 1) motion_blur_kernel = np.diag(np.ones(degree)) motion_blur_kernel = .

xian0710830114的专栏 1858

OpenCV 运动模糊的模拟 C++

运动模糊时,模糊后图片某点的值应该与原图沿运动角度方向前面的点有关,并且越近邻影响越大,即权值越大。所以除了确定卷积核之外,还确定了锚点(anchor) 右下角60度移动,距离50 代码实现: #include "opencv2/opencv.hpp" typedef cv::Mat Mat; void genaratePsf(Mat &psf, cv::Point ...

cyf15238622067的博客 2730

OPENCV2学习(1)_生成运动模糊核(OPENCV2 实现Matlab中fspecial的motion功能)

这段时间在用OPENCV2实现图像运动模糊图像复原功能,其中需要合成不同模糊长度和模糊角度的运动模糊图像,由于没有直接可用的函数,于是自己编了一个,采用OPENCV2风格,代码如下: void genaratePsf(Mat &psf, double len,double angle){double half=len/2;double alpha = (angle-floor(angle/ 18

lei_yin的专栏 8979

Opencv+Python实现图像运动模糊和高斯模糊

  运动模糊: 由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 Opencv+Python实现运动模糊,主要用到的函数是cv2.filter2D(): # coding: utf-8 import numpy as np import cv2 def motion_blur(image, degree=12, angle=45): image = np.array(im...

牧野的博客 2万+

【OpenCV Python实现图像增强:高斯模糊和运动模糊】

【OpenCV Python实现图像增强:高斯模糊和运动模糊】图像处理是计算机视觉领域的重要分支,它在各个领域都有广泛的应用。图像增强是其中的一个重要技术,可以帮助我们提升图像的质量和清晰度。本文将介绍如何使用Python和OpenCV库来实现两种常见的图像增强方法:高斯模糊和运动模糊。

. 2120

【OpenCV 例程 300 篇】104. 运动模糊退化模型

估计图像复原中所用的退化函数,主要有三种方法:观察法、试验法和数学建模方法。 分析导致退化的原因,根据基本原理提出退化模型,如湍流导致的模糊、匀速运动导致的模糊,可以基于模型更加准确地估计退化函数。 下面以运动模糊模型为例,采用退化模型对图像的退化建模。...

youcans的博客 5905

OpenCV运动去模糊滤波器

OpenCV运动去模糊滤波器运动去模糊滤波器目标理论运动模糊图像的PSF是多少?如何恢复模糊的图像?源代码解释结果 运动去模糊滤波器 目标 在本教程中,您将学习: 运动模糊图像的PSF是多少 如何还原运动模糊图像 理论 运动模糊图像的PSF是多少? 线性运动模糊失真的点扩展函数(PSF)是线段。 这样的PSF由两个参数指定:LENTHETA 线性运动模糊失真的点扩散函数 如何恢复模糊的图像? 在此页面上,Wiener过滤器用作恢复过滤器, 为了在运动模糊情况下合成维纳滤波器,需要指定信噪比(SNRLENT

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1395

Opencv+Python实现图像运动模糊和高斯模糊的示例

运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 Opencv+Python实现运动模糊,主要用到的函数是cv2.filter2D(): # coding: utf-8 import numpy as np import cv2 def motion_blur(image, degree=12, angle=45): image = np.array(image) # 这里生成任意角度的运动模糊kernel的矩阵, degree越大,模糊程度越高 M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle

python 图像模糊处理实现

图像模糊处理的实现 包括有:均值模糊,高斯模糊,运动模糊 一.均值模糊 # 图像模糊处理 # 均值模糊 box blur import cv2 import numpy as np import matplotlib.pyplot as plt if __name__ == "__main__": image = cv2.imread('Lena.jpg') image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 此为均值模糊

Wadewhl的博客 9304

嵌入式八股文-ARM

嵌入式八股文总结(ARM篇)-优快云博客现象:I2C死锁就是时钟线SCL一直处于高电平,数据线SDA一直处于低电平。从机拉低数据线SDA时(发送应答信号给主机时或发送数据0时)主机意外复位,主机复位后时钟线SCL就为高电平了,此时,SCL为高电平而SDA为低电平,主机就以为有其他设备占有了总线,而SCL为高电平时 数据位SDA不允许有变化,意思是:主机就一直等待时钟线SDA拉高,而从机就一直等待时钟线SCL拉高 就造成了死锁的现象。解决方法:1.选择带有复位功能的从设备,复位后SDA被拉高。

m0_63127436的博客 1257

python实现运动模糊图像_python opencv生成模糊图像

去除由于对焦,运动等造成的模糊图像,所以在构建数据集的时候考虑用opencv对清晰的图片进行处理获得模糊的图片从而进行训练。1) 运动模糊图像一般来说,运动模糊的图像都是朝同一方向运动的,那么就可以利用cv2.filter2D函数。import numpy as npdef motion_blur(image, degree=10, angle=20):image = np.array(image...

weixin_34434948的博客 3415

无需云服务器:飞牛云NAS+Docker搭建本地WordPress站点全球访问

在数字化浪潮中,网站搭建已成为个人和企业在推广自身品牌与业务的首要选择。飞牛云新推出的fnOS,这款集多功能于一身的nas系统,以其卓越的性能和灵活性,成为理想的本地网站部署平台。本文将带你一探如何在飞牛云NAS上通过Docker部署WordPress,并利用cpolar实现全球访问。

LT15171009269的博客 6528

在claude code中使用glm模型出现Unable to connect to Anthropic services的解决方案

本文主要介绍了在claude code中使用glm模型出现Unable to connect to Anthropic services的解决方案,希望能对使用claude code的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 13万+

python实现运动模糊图像_OpenCV+Python实现图像运动模糊和高斯模糊

原标题:OpenCV+Python实现图像运动模糊和高斯模糊运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊OpenCV+Python实现运动模糊,主要用到的函数是cv2.filter2D:# coding: utf-8importnumpy asnpimportcv2defmotion_blur(image, degree= 12, angle= 45):image = np.a...

weixin_39844525的博客 573

Autosar NvM配置-手动配置Nvblock及使用-基于ETAS软件

NVM作为存储协议栈中最顶层的模块,是必须要掌握的。目前项目基本使用MCU带的Dflash模块,使用Fee模拟eeprom。在项目前期阶段,应该充分讨论需要存储的内容,包括应用数据,诊断数据等,用以评估Dflash空间是否够用。本文基于ETAS软件介绍NVBlock配置生成NVM参数及使用。使用NVBlock配置生成,基本不用手写代码,还是比较方便的。对于Nv block的划分,建议将同时写的一类数据放到一个block中,因为block除了data以外,Fee还会增加一些header数据,占用不少内存。

赞的博客 1884

OpenCV4.9去运动模糊滤镜(68)

OpenCV是一个开源的计算机视觉库,由英特尔公司开发并开源的一组跨平台的C++函数和少量的C函数组成,用于实时图像处理、计算机视觉和机器学习等应用领域。OpenCV可以在包括Windows、Linux、macOS等各种操作系统平台上使用,具有开放的编程接口,可用于各种应用开发。OpenCV的主要特点是易于使用,高效、学习资源和社区活跃。OpenCV可以计算相机标定、物体识别、动作跟踪、人脸识别、手写数字识别等任务,并可集成到摄像头、网络摄像头和机器人等系统中。

2301_78348935的博客 1426

Ollama 在不同操作系统上的详细使用,及用python进行调用实战

本文介绍了Ollama的安装配置及Python调用方法。主要内容包括:1)Windows/macOS/Linux/Docker等多种安装方式;2)Ollama基础命令,涵盖模型管理、运行和服务控制;3)Python调用教程,包含官方库使用、自定义客户端、多轮对话、参数设置等高级功能,以及直接API调用示例。文章提供了完整的代码片段,适合开发者快速上手使用Ollama进行本地大模型部署和开发。

数据知道的博客 1231

海康威视嵌入式最全面试题及参考答案(3万字长文)

主营业务:提供包括前端摄像头、后端存储设备、显示控制设备等在内的全方位视频监控解决方案。市场地位:在全球范围内享有较高的市场份额,在安防领域具有较强的竞争力。技术创新:持续投入研发,拥有多项核心技术和专利,特别是在视频处理算法、人工智能等方面取得了显著成果。社会责任:积极参与公共安全项目,为智慧城市、交通管理等领域提供技术支持和服务。国际业务:除了国内市场外,海康威视的产品和服务也销往全球多个国家和地区。面向对象编程。

大模型大数据攻城狮的专栏 1760

运动模糊修复:4 类实用算法及 OpenCV + Halcon 实战代码

运动模糊修复:4 类实用算法及 OpenCV + Halcon 实战代码

xianzuzhicai的博客 1884

初识 QML

QML 是一种声明性语言,允许根据用户界面的可视组件以及它们如何相互交互和相互关联来描述用户界面。QML 是一种高度可读的语言,旨在使组件能够以动态方式互连,并且允许组件在用户界面中轻松重复使用和自定义。 使用 Qt Quick,开发人员可以轻松地在 QML 中构建流体动画用户界面,并且可以选择将这些用户界面连接到任何后端 C++ 库。

青春不老,奋斗不止! 1万+

python+opencv模拟生成运动模糊核

参考:OPENCV2学习(1)_生成运动模糊核(OPENCV2 实现Matlab中fspecial的motion功能) 运动模糊时,模糊后图片某点的值应该与原图沿运动角度方向前面的点有关,并且越近邻影响越大,即权值越大。所以除了确定卷积核之外,还确定了锚点(anchor) import math import numpy as np import cv2 #生成卷积核和锚点 ...

weixin_30670965的博客 1155

Android 10.0 kenel中修改rom系统内部存储的大小

在10.0的系统rom产品开发定制中,在对一些产品开发中的配置需求方面,由于在产品后续订单中,有些产品是出口的,但是硬件方面已经定板,时间比较仓促,所以 就需要软件方面在rom内部存储的大小方面作假,修改rom真实的大小容量,所以就需要在kenel驱动部分来修改这部分的值最好了,接下来分析下计算rom容量的 相关代码,然后做出修改

安卓兼职framework和app工程师的博客 1403

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: OpenCV实现gamma变换(个人笔记)
下一篇: OpenCV实现对图片ROI的随机擦除(个人笔记)
vector_Lu
博客等级 码龄9年 13粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值