编码曝光知识 - ostartech - 博客园 https://www.cnblogs.com/wxl845235800/p/8276362.html

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%% 作者:WWC %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 维纳滤波
clc;
clear;
close all;
%% 读取图片
I=imread('飞机.png');
I2=imfilter(I,[0 0 0 0 0 0 0 0 5/25 4/25 4/25 3/25 3/25 2/25 2/25 1/25 1/25]);
I2=imnoise(I2,'gaussian',0,0.001);
I1=imfilter(I2,[1/9 1/9 1/9;1/9 1/9 1/9;1/9 1/9 1/9;]);
I_hsv=rgb2hsv(I1);
I=I_hsv(:,:,3)*255;
%% 频谱 估计运动模糊方向(光斑的角度与真实图像运动模糊距离垂直)
img_fft=fftshift(fft2(I));
N=abs(img_fft);
P=(N-min(min(N)))/(max(max(N))-min(min(N)))*225;
figure;imshow(P);
%% 估计运动模糊长度(两个最小点之间的距离为近似运动模糊距离)
h=fspecial('sobel');
img_double=double(I);
J=conv2(img_double,h,'same');
IP=abs(fft2(J));
S=fftshift(real(ifft2(IP)));
figure;plot(S);
%% 进行维纳滤波
f = im2double(I);
PSF = fspecial('motion',9,180);% 分别填写上述估计的运动模糊距离和运动模糊方向 为普通相机PSF
%PSF=[0 0 0 0 0 0 0 0 1/25 1/25 2/25 2/25 3/25 3/25 4/25 4/25 5/25];% 编码相机的PSF
frest1 = deconvwnr(f,PSF,0.02);
frest2=cat(3,I_hsv(:,:,1),I_hsv(:,:,2),frest1/255);
frest2=hsv2rgb(frest2);
figure,imshow(I2); title('原图像');
figure,imshow(frest2); title('维纳滤波处理后图像');
imwrite(I2,'原图.jpg');
imwrite(frest2,'普通曝光后滤波.jpg');

假设曝光时间0.2s,在曝光时间内走过的像素点数为为25,均匀分成9份,分别走过的像素点为1 1 2 2 3 3 4 4 5,

则设计36位编码为100010001010101011011011111111111111。

维纳滤波和编码曝光PSF去除运动模糊【matlab】的更多相关文章

  1. 从单幅图像高质量去除运动模糊——读JiaYaJia同名英文论文总结

    原始论文在这里 http://www.cse.cuhk.edu.hk/leojia/projects/motion_deblurring/ 一.概述 论文根据以下的基本模糊图像模型建立 其中I是我们观 ...

  2. Win8 Metro(C#)数字图像处理--2.50图像运动模糊

    原文:Win8 Metro(C#)数字图像处理--2.50图像运动模糊  [函数名称] 图像运动模糊算法    MotionblurProcess(WriteableBitmap src,int  ...

  3. OpenCV3入门(十三)图像运动模糊

    1.原理 运动模糊产生: 由于相机传感器或物体相对运动, 按快门瞬间造成图像产生运动模糊. 在用摄像机获取景物图像时,如果在相机曝光期间景物和摄像机之间存在相对运动,例如用照相机拍摄快速运动的物体,或 ...

  4. Java 运动模糊

    Java 运动模糊代码 想用Java 写个运动模糊的效果,无奈本人水平有限,国内也没找到资源,于是Google到了一个文档,特地分享出来! 本代码源自 http://www.jhlabs.com/ip ...

  5. Unity shader学习之屏幕后期处理效果之运动模糊

    运动模糊,代码如下: using UnityEngine; public class MotionBlurRenderer : PostEffectRenderer { [Range(0.1f, 0. ...

  6. Unity Shader 屏幕后效果——摄像机运动模糊(速度映射图实现)

    速度映射图主要是为了得到每个像素相对于前一帧的运动矢量,其中一种方法是使用摄像机的深度纹理来推导. 推导过程如下: 先由深度纹理逆推出NDC(归一化的设备坐标)下的顶点坐标,利用VP矩阵(视角*投影矩 ...

  7. 编码-截取中文-去除HTML字符

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...

  8. PS 过滤器——运动模糊

    %%%%%  motion blur clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); theta=pi/4 ...

  9. PS 滤镜——运动模糊

    %%%%%  motion blur clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); theta=pi/4 ...

随机推荐

  1. 百度URL參数解析

    百度URL參数解析 在用Python爬取百度搜索的内容时,发现百度搜索的url非常的长.往往会跟一大段的參数,但事实上非常多參数都是没有必要的,如相同是搜索javakeyword,能够通过 http: ...

  2. Java基础——线程总结

    Java基础--线程总结 一.线程是什么? 线程:一个程序里不同的运行路径. 二.怎样创建线程? 两种方法创建线程: 第一种 (1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享 ...

  3. Oracle SQL Developer出现错误 【ora-28002:the password will expire within 7 days】的解决办法

    启动 Oracle SQL Developer的时候,点击用户system进行连接并输入密码后(下图左),会出现(下图右)提示信息: 即:[ora-28002:the password will ex ...

  4. SICP 1.23-1.26体会

    1.23 代码修改非常easy, 关键是时间. 电脑上算了一下. 100000000下面全是0. 開始还以为代码写错了. 最后没办法, 用1e10 1e11来计算. 发现比 1e11 1e12快1.2 ...

  5. ajax 上传图片

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  6. 如何解决MySQL连接超时关闭

    最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到M ...

  7. excel批量加前后缀

    =A1 & “xxx" 似乎只能在新的列里面添加然后粘贴回去

  8. 多线程-wait/notify/notifyAll

    引言 在Java中,可以通过配合调用Object对象的wait,notify和notifyAll来实现线程间的通信. 在线程中调用wait方法,将阻塞带带其他线程的通知(其他线程调用notify或no ...

  9. 简述 Python 类中的 __init__、__new__、__call__ 方法

    任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使用.垃圾回收,不同的阶段由不同的方法(角色)负责执行. 定义一个类时,大家用得最多的就 ...

  10. 李洪强详细介绍SDWebImage

    SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类,以支持从远程服务器下载并缓存图片的功能.它具有以下功能: 提供UIImageView的一个分类,以支持网络图片的加载 ...