小白一枚,有错误之处还请指出,谢谢~

1、曝光:

1)双重曝光

clc;clear;
picname='xinyi.tif';
picname1='xiaolan.tif';
x=double(imread(picname))/255;
%实现归一化,读入的类型是无符号的8位整型,
%相当于0-255的所有整数,为了计算准确,必须先化为double型。
%再除以255,这样图像矩阵的值全部都在0-1之间。
x1=double(imread(picname1))/255;
subplot(2,2,1);
imshow(x);
title('原图1');
subplot(2,2,2);
imshow(x1);
title('原图2');
alpha=0.3;
picinfo=imfinfo(picname);
for i=1:picinfo.Heightfor j=1:picinfo.Widthfor k=1:3Y(i,j,k)=alpha*x(i,j,k)+(1-alpha)*x1(i,j,k);
%a,b是两幅图像,k是系数。由于两幅彩色图像都是三维的,
%所以循环要跑三个方向,进行图片的叠加endend
end
subplot(2,2,3);
pause(2)
imshow(Y)
title('双重曝光后的图');

效果图

另一种代码:

im1=imread('1.jpg');  %导入图片1
im2=imread('2.jpg');  %导入图片2
im3=imresize(im2,[1440,1440]);%修改图片2尺寸使得图片1和2等大
im_add=imadd(im1,im3);%图片1和修改后的图片2合成
figure ; subplot(2,2,1) ;
imshow(im1) ;
title('图1');
subplot(2,2,2) ;
imshow(im3);%同时展示图片1和修改后的2
title('图2');
subplot(2,2,[3,4]);
imshow(im_add);%展示合成图片
title('二重曝光后的效果图');

但曝光效果不是很好

2)三重曝光

>> im1=imread('1.jpg');%读取图片
>> im2=imread('2.jpg');
>> im3=imread('3.jpg');
>> im4=imresize(im2,[1048,1200]);%调整图2大小,与图1大小相同
>> im5=imresize(im3,[1048,1200]);%调整图3大小,与图1大小相同
>> im_add=uint8(0.4*im1+0.3*im4+0.3*im5);%按比例放大
>> imshow(im1) ;
>> title('图一');
>> subplot(2,3,2) ;
>> imshow(im4);
>> title('图二');
>> subplot(2,3,3);
>> imshow(im5);
>> title('图三');
>> subplot(2,3,[4,6]);
>> imshow(im_add);
>> title('处理后的效果图');

2、直方图均衡化

clc ;clear
%% 直方图均衡
A = imread('autumn.tif');%读取图像
A=rgb2gray(A);%将图片灰度化
[J,T] = histeq(A);%直方图均衡化,T为直方图的值
%% Image display
figure(1);%建立空白图像
subplot(3, 2, 1);
imshow(A);
title('原图');
subplot(3, 2, [3 4]);
imhist(A);%显示原图的直方图
title('原图的直方图');
subplot(3, 2, 2);%画出均衡化后的图及直方图
imshow(J);
title('均衡化的图');
subplot(3,2, [5 6]);
imhist(J);
title('均衡化后的直方图');

效果图

3、平滑滤波(中值滤波,均值滤波,梯度倒数):加噪声

1)椒盐噪声

clear; close all; clc
%% 图像读取、灰度化与加椒盐噪音
I = imread('xinyi.tif');%读取图像
I=rgb2gray(I);%调用函数,处理图像使之灰度化
J = imnoise(I,'salt & pepper');%椒盐噪声
%% 中值滤波
z_J=medfilt2(J);%中值滤波函数
%% 均值滤波
h0=1/9.*[1 1 1 1 1 1 1 1 1];%定义平滑模板
p_J=filter2(h0,J);
p_J=uint8(p_J);
%% 梯度倒数
t_J=double(J);%转化图像为double型
[GX,GY]=gradient(t_J);%求图像梯度
G=sqrt(GX.*GX+GY.*GY);
%% Image display
figure
subplot(3,2,1),imshow(I);%输出图像
title('原图像')%给原图像加标题
subplot(3,2,2),imshow(J);%输出图像
title('加椒盐噪声后图像')%给原图像加标题
subplot(3,2,3),imshow(z_J);%输出图像
title('中值滤波后图像')%给图像加标题
subplot(3,2,4),imshow(p_J);%输出图像
title('均值滤波后图像')%给图像加标题
subplot(3,2,5),imshow(G/255,[]);%把double类型换回unit8类型输出
title('梯度倒数后图像')

效果图

2)高斯噪声

clear; close all; clc
%% 图像读取、灰度化与高斯噪声
I = imread('xinyi.tif');%读取图像
I=rgb2gray(I);%调用函数,处理图像使之灰度化
J = imnoise(I,'gaussian');%高斯噪声
%% 中值滤波
z_J=medfilt2(J);%中值滤波函数
%% 均值滤波
h0=1/9.*[1 1 1 1 1 1 1 1 1];%定义平滑模板
p_J=filter2(h0,J);
p_J=uint8(p_J);
%% 梯度倒数
t_J=double(J);%转化图像为double型
[GX,GY]=gradient(t_J);%求图像梯度
G=sqrt(GX.*GX+GY.*GY);
%% Image display
figure
subplot(3,2,1),imshow(I);%输出图像
title('原图像')%给原图像加标题
subplot(3,2,2),imshow(J);%输出图像
title('加高斯噪声后图像')%给原图像加标题
subplot(3,2,3),imshow(z_J);%输出图像
title('中值滤波后图像')%给图像加标题
subplot(3,2,4),imshow(p_J);%输出图像
title('均值滤波后图像')%给图像加标题
subplot(3,2,5),imshow(G/255,[]);%把double类型换回unit8类型输出
title('梯度倒数后图像')

效果图

补充:图像噪声的添加为了完成多种图像处理的操作和试验,还可以对图片添加噪声。所用函数为imnoise (I, type),该函数中的type可以为5种噪声参数,分别为:'gaussian'(高斯白噪声),'localvar'(与图象灰度值有关的零均值高斯白噪声),'poisson'(泊松噪声),'salt & pepper'(椒盐噪声)和'speckle'(斑点噪声)。

另一种代码:

1)椒盐噪声+均值滤波

>> im1=imread('11.jfif');
>> im2=rgb2gray(im1);
>> im3=imnoise(im2,'salt & pepper',0.05);
>> im4=MeanFilter(im3);调用函数
>> figure;subplot(121);imshow(im3);subplot(122);imshow(im4);函数创建(均值滤波)
function [ filtered ] = MeanFilter( noise )
filtered = noise;
h = size(filtered, 1);
w = size(filtered, 2);
for i= 1:hfor j=1:wup=max(i-1,1);down=min(i+1,h);left=max(j-1,1);right=min(j+1,w);filtered(i,j)=mean(mean(noise(up:down,left:right)));end
end
end

2)椒盐噪声+中值滤波

>> im1=imread('11.jfif');
>> im2=rgb2gray(im1);
>> im3=imnoise(im2,'salt & pepper',0.05);
>> im4=MedianFilter(im3);
>> figure;subplot(121);imshow(im3);subplot(122);imshow(im4);函数(中值滤波)
function [ filtered ] = MedianFilter( noise )filtered = noise;h = size(filtered, 1);w = size(filtered, 2);for i = 1 : hfor j = 1 : wup = max(i - 1, 1);down = min(i + 1, h);left = max(j - 1, 1);right = min(j + 1, w);sub = noise(up : down, left : right);sub = sub(:);filtered(i, j) = median(sub);endend
end

MATLAB图像处理1——曝光、直方图均衡化、平滑滤波相关推荐

  1. 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验

    图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...

  2. 直方图均衡化高斯滤波

    直方图均衡化高斯滤波 直方图 原理 py实现 均衡化 原理 py实现 高斯滤波 原理 py实现 直方图 原理 直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹 ...

  3. python+opencv图像处理之七:直方图均衡化

    python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...

  4. matlab实现彩色图像的直方图均衡化

    本篇用于记录用matlab实现彩色图像的直方图均衡化算法,并与matlab自带的直方图均衡化函数histeq做对比. 直方图原理可以参考下面的博客文章:直方图均衡化 原理.流程.公式推导及matlab ...

  5. matlab数字图像处理之局部直方图均衡化

    在对图像的直方图进行处理时,有时需要对图像小区域细节的局部增强,解决的办法就是在图像的每一个像素点的领域中,按照灰度级分布设置变换函数(可以是邻域直方图均衡化,也可以是邻域直方图匹配),来进行局部增强 ...

  6. matlab数字图像处理编码实现直方图均衡化

    matlab中直方图均衡化有对应的内置函数histeq函数,其具体形式为: g=histeq(f,nlev) 参数f为输入图像,nlev是为输出图像设置的灰度级(默认为64),g为直方图均衡化后的输出 ...

  7. 图像处理(一):平滑滤波

    平滑处理,有时也称模糊处理,是图像处理领域最常用的操作.平滑的目的主要是用来去除噪声.通常平滑操作是通过卷积操作(注:实际上是相关操作,后面的叙述对这两个操作不加区分)完成.下面介绍几种常用的平滑滤波 ...

  8. Python 图像处理OpenCV:直方图均衡化(笔记)

    进行了直方图的均衡化和限制对比度的直方图均衡化. 代码如下: import cv2 as cv import matplotlib.pyplot as plt # 直方图均衡化 def img_his ...

  9. Matlab实现西格玛(Sigma)平滑滤波

    %Sigma 西格玛平滑滤波 clc;clear *; F=rgb2gray(imread('img\girl.jpg')); figure,imshow(F); title('originImage ...

最新文章

  1. Python 字符串及基本语句
  2. java元婴期(17)----java进阶(spring(1)----spring基本概念IOC)
  3. Windows 7 VHD 启动
  4. 【shell】shell编程(四)-循环语句
  5. 如何正确地生成一个随机数
  6. 谈谈基于SQL Server 的Exception Handlingp[下篇]
  7. windows 和linux 同步api对比
  8. linuxpython安装_Linux安装python3.6
  9. highcharts.js两种数据绑定方式和异步加载数据的使用
  10. bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机
  11. 深度学习框架中的魔鬼:探究人工智能系统中的安全问题
  12. html给一个样式最高权重,什么是CSS权重?
  13. 蓦然回首,已然踏上编程路
  14. 直观理解图片的EXIF orientation
  15. 2018年迎春杯复赛入围名单(三年级)
  16. c语言中int sel是什么意思,SEL的理解
  17. Linux Centos装机全过程总结,小白入(持续更新中...)
  18. Reptile_02 json网页爬虫QQ华晨宇音乐
  19. 关于forward(转发)和redirect(重定向)的区别
  20. MooTools and Sizzle

热门文章

  1. 裸眼立体(自由立体)显示原理与器件制作
  2. 【StackFlow】windows不能正常设置文件的默认打开程序
  3. 互联网巨头为何偏爱“二手货”?告诉你真实的理由
  4. SpringBoot banner佛祖
  5. 青春不常在,抓紧谈恋爱小案例,表格标签、列表标签、表单标签 的综合练习
  6. Netflix 总用户达到 2.325 亿;马斯克打脸创建 X.AI 公司;印度首开苹果门店;谷歌老板对 AI 很担心?特斯拉营收增加,但净利润下降…《经济学人 | 第 17 期 | 速读版》
  7. 如何在三个月内成为一名全栈开发
  8. 数据库中的多值依赖的理解
  9. C#开发Visio例子
  10. “Signal”背后的bug与解决