MATLAB图像变换
一、综述
图像变换可以分为正交变换(积分变换)和几何变换两种。积分变换主要有离散傅里叶变换(Discrete Fourier Transform,DFT)、离散余弦变换(Discrete Cosine Transform,DCT)、小波变换(Wavelet Transform,WT)等,其基本思想就是将图像信号从空间域变换到频率域。为什么要这样处理呢?目的是简化问题的求解。举个例子,要在空间域中做卷积运算,其难度相当大,但是通过离散傅里叶变换,可以将空间域中的卷积运算转化为频率域中的乘法运算,化繁为简。所以,求解这类问题的一般思路是:
1)从空间域转化到频率域,使用离散傅里叶变换;
2)在频率域内求解;
3)从频率域反向变换到空间域,使用离散傅里叶变换的反变换。
几何变换简单一些,就是图像的平移、伸缩、旋转、镜像以及由这几种变换组合而成的复合变换,其数学基础是一个叫做其次坐标的东西,每种变换都有一个该坐标下的变换矩阵,最终就是矩阵的乘法运算。
二、MATLAB实现
- 离散傅里叶变换
% 图像的离散傅里叶变换% 程序执行前的清理工作
close all;
clear;
clc;% 读取图像
[filename,pathname,filter] = uigetfile({'*.jpg;*.jpeg;*.bmp;*.gif;*.png'},'选择图片');
if filter == 0return;
end
img_filename = fullfile(pathname,filename);
input_img=imread(img_filename);% 转化为灰度图
input_img = rgb2gray(input_img);% 快速傅里叶变换
J = fft2(input_img);% 频率变换
K = fftshift(J);% 图像显示
subplot(1,3,1);
imshow(input_img);
title('原始图像');subplot(1,3,2);
imshow(J);
title('FFT变换结果');subplot(1,3,3);
imshow(K);
title('零点平移');
- 离散余弦变换
% 图像的离散余弦变换% 程序执行前的清理工作
close all;
clear;
clc;% 读取图像
[filename,pathname,filter] = uigetfile({'*.jpg;*.jpeg;*.bmp;*.gif;*.png'},'选择图片');
if filter == 0return;
end
img_filename = fullfile(pathname,filename);
input_img=imread(img_filename);% 转化为灰度图
input_img = rgb2gray(input_img);% 离散余弦变换
J = dct2(input_img);% 图像显示
subplot(1,2,1);
imshow(input_img);
title('原始图像');subplot(1,2,2);
% 对数显示图像
imshow(log(abs(J)),[]);
title('DCT变换结果');
- 镜像变换
% 图像的镜像变换% 程序执行前的清理工作
close all;
clear;
clc;% 读取图像
[filename,pathname,filter] = uigetfile({'*.jpg;*.jpeg;*.bmp;*.gif;*.png'},'选择图片');
if filter == 0return;
end
img_filename = fullfile(pathname,filename);
input_img=imread(img_filename);% 转化为灰度图
input_img = rgb2gray(input_img);% 返回图像的大小矩阵1*2
S = size(input_img);% 水平镜像
H(1:S(1,1),1:S(1,2)) = input_img(1:S(1,1),S(1,2):-1:1);% 垂直镜像
V(1:S(1,1),1:S(1,2)) = input_img(S(1,1):-1:1,1:S(1,2));% 对角镜像
A(1:S(1),1:S(2)) = input_img(S(1):-1:1,S(2):-1:1); % 图像显示
subplot(2,2,1);
imshow(input_img);
title('原始图像');subplot(2,2,2);
imshow(H);
title('水平镜像');subplot(2,2,3);
imshow(V);
title('垂直镜像');subplot(2,2,4);
imshow(A);
title('对角镜像');
- 伸缩变换
%将图像大小归一化为500*400大小
function normal_img = normalize(input_img)%最近邻插值,效果不好,有马赛克
%nearest = imresize(input_img,[400 500],'nearest');
%双线性插值,效果一般
%bilinear = imresize(input_img,[400 500],'bilinear');
%双三次插值,效果很好
% bicubic = imresize(input_img,[400 500],'bicubic');
normal_img = imresize(input_img,[400 500],'bicubic');
MATLAB图像变换相关推荐
- MATLAB图像变换四
I = fitsread('solarspectra.fts');%读取fts格式图像 I = mat2gray(I);%转化为灰度图像 BW = edge(I);%转化为二值图像 subplot(1 ...
- 【matlab图像处理笔记5】【图像变换】(四)图像的正交变换
文章目录 推荐阅读 前言 图像正交变换简介 离散傅里叶变换 对图像进行离散傅里叶变换的作用 二维离散傅里叶变换 频谱图 示例 离散余弦变换 简介 基本原理 示例 推荐阅读 本系列其他文章 [matla ...
- 【基于MATLAB的数字图像处理】第三章·基本图像变换
系列文章 ·[基于MATLAB的数字图像处理]第一章·绪论 ·[基于MATLAB的数字图像处理]第二章·视觉系统与图像处理系统 ·[基于MATLAB的数字图像处理]第三章·基本图像变换 ·[基于MAT ...
- 【matlab图像处理笔记4】【图像变换】(三)图像的霍夫变换
文章目录 推荐阅读 前言 霍夫变换概述 霍夫变换直线检测原理 从笛卡尔坐标系到霍夫空间 两点一线的霍夫空间形式 寻找共线的点 直角坐标系存在的问题 极坐标参数空间下的霍夫变换 matlab霍夫变换直线 ...
- Matlab之图像变换技术(十二)
图像变换是将图像从空间域变换到变换域.图像变换的目的是根据图像在变换域的某些性质对其进行处理.通常,这些性质在空间城内很难获取.在变换城内处理结束后,将处理结果进行反变换到空间城. 这里将详细介紹图像 ...
- matlab矩形图像变换为圆形
转自:https://www.cnblogs.com/tiandsp/p/3870290.html 最近对图像坐标的变换很感兴趣啊,这次是将一张图像变换为圆形. 变换原理就是按变换前后像素到圆心的距离 ...
- [matlab数字图像处理4]打开一幅过度曝光图像,拉伸其图像,观察图像变换,对图像直方图均衡算法
%任务:打开一幅过度曝光图像,拉伸其图像,观察图像变换,对图像直方图均衡算法: %本作业使用MATLAB2021A完成 clear; clc; close all f=imread("4.j ...
- 【图像几何】基于傅里叶+DCT图像变换matlab代码
1 简介 快速傅立叶变换(FFT)改进了离散傅立叶变换(DFT)的计算过程,被广泛应用于数字图像的实时处理中.在相位相关技术的基础上,提出了一种新的图像配准算法,即在需要配准的两幅图像中心选取相同区域 ...
- 数字图像处理 关于matlab的图像变换
1.目的 熟悉及掌握图像的傅里叶变换.离散余弦变化原理及性质,实现图像的频率域变换. 2.任务和要求and代码 1. 读入一幅图像,分别为图像添加叠加密度为0.04的椒盐噪声,均值为0方差为0.02的 ...
最新文章
- 记一次数据库查询语句的优化
- 8种常见机器学习算法比较
- pip安装时报错:以一种访问权限不允许的方式做了一个访问套接字的尝试
- 重置手机_【轻松办税】ITS客户端申报密码重置不会操作?看过来,3分钟包你会!...
- input的type属性的修改
- 广西高职计算机网络技术,计算机网络技术专业考试大纲-广西职业技术学院.DOC...
- 浅谈python使用多态跟不用多态的区别_python 多态和 super 用法
- C++应用通信服务器:MYCP功能介绍
- python中delete怎么用_python删除np.deletePython基础教程05 - 缩进和选择
- sysstat工具的用法
- mysql 触发器 lod_MySQL--初探触发器的使用和理解
- Atitit 常用数据校验规则
- Navicat for MySQL触发器更新和插入操作
- Excel如何导出自定义架构xml
- matlab计算涡度的函数_流函数涡量法的二维方腔流数值模拟matlab编程.doc
- Greenplum字段拼接
- MYSQL 索引 主键 外键
- .net core系列源码地址介绍
- PHP header网页安全认证
- [跬步]说说如何自主学习