MATLAB图像处理1——曝光、直方图均衡化、平滑滤波
小白一枚,有错误之处还请指出,谢谢~
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——曝光、直方图均衡化、平滑滤波相关推荐
- 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验
图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...
- 直方图均衡化高斯滤波
直方图均衡化高斯滤波 直方图 原理 py实现 均衡化 原理 py实现 高斯滤波 原理 py实现 直方图 原理 直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹 ...
- python+opencv图像处理之七:直方图均衡化
python+opencv图像处理之七:直方图均衡化 目录 python+opencv图像处理之七:直方图均衡化 一.直方图均衡化 二.直方图绘制 三.直方图均衡化 四.有限对比适应性直方图均衡化 一 ...
- matlab实现彩色图像的直方图均衡化
本篇用于记录用matlab实现彩色图像的直方图均衡化算法,并与matlab自带的直方图均衡化函数histeq做对比. 直方图原理可以参考下面的博客文章:直方图均衡化 原理.流程.公式推导及matlab ...
- matlab数字图像处理之局部直方图均衡化
在对图像的直方图进行处理时,有时需要对图像小区域细节的局部增强,解决的办法就是在图像的每一个像素点的领域中,按照灰度级分布设置变换函数(可以是邻域直方图均衡化,也可以是邻域直方图匹配),来进行局部增强 ...
- matlab数字图像处理编码实现直方图均衡化
matlab中直方图均衡化有对应的内置函数histeq函数,其具体形式为: g=histeq(f,nlev) 参数f为输入图像,nlev是为输出图像设置的灰度级(默认为64),g为直方图均衡化后的输出 ...
- 图像处理(一):平滑滤波
平滑处理,有时也称模糊处理,是图像处理领域最常用的操作.平滑的目的主要是用来去除噪声.通常平滑操作是通过卷积操作(注:实际上是相关操作,后面的叙述对这两个操作不加区分)完成.下面介绍几种常用的平滑滤波 ...
- Python 图像处理OpenCV:直方图均衡化(笔记)
进行了直方图的均衡化和限制对比度的直方图均衡化. 代码如下: import cv2 as cv import matplotlib.pyplot as plt # 直方图均衡化 def img_his ...
- Matlab实现西格玛(Sigma)平滑滤波
%Sigma 西格玛平滑滤波 clc;clear *; F=rgb2gray(imread('img\girl.jpg')); figure,imshow(F); title('originImage ...
最新文章
- Python 字符串及基本语句
- java元婴期(17)----java进阶(spring(1)----spring基本概念IOC)
- Windows 7 VHD 启动
- 【shell】shell编程(四)-循环语句
- 如何正确地生成一个随机数
- 谈谈基于SQL Server 的Exception Handlingp[下篇]
- windows 和linux 同步api对比
- linuxpython安装_Linux安装python3.6
- highcharts.js两种数据绑定方式和异步加载数据的使用
- bzoj 1704: [Usaco2007 Mar]Face The Right Way 自动转身机
- 深度学习框架中的魔鬼:探究人工智能系统中的安全问题
- html给一个样式最高权重,什么是CSS权重?
- 蓦然回首,已然踏上编程路
- 直观理解图片的EXIF orientation
- 2018年迎春杯复赛入围名单(三年级)
- c语言中int sel是什么意思,SEL的理解
- Linux Centos装机全过程总结,小白入(持续更新中...)
- Reptile_02 json网页爬虫QQ华晨宇音乐
- 关于forward(转发)和redirect(重定向)的区别
- MooTools and Sizzle
热门文章
- 裸眼立体(自由立体)显示原理与器件制作
- 【StackFlow】windows不能正常设置文件的默认打开程序
- 互联网巨头为何偏爱“二手货”?告诉你真实的理由
- SpringBoot banner佛祖
- 青春不常在,抓紧谈恋爱小案例,表格标签、列表标签、表单标签 的综合练习
- Netflix 总用户达到 2.325 亿;马斯克打脸创建 X.AI 公司;印度首开苹果门店;谷歌老板对 AI 很担心?特斯拉营收增加,但净利润下降…《经济学人 | 第 17 期 | 速读版》
- 如何在三个月内成为一名全栈开发
- 数据库中的多值依赖的理解
- C#开发Visio例子
- “Signal”背后的bug与解决