数字图像处理中的一些基本概念

1.图像的频率表征的是图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。跟信号里类似,高频分量对应的是陡峭的跳变沿。
2.实际数字图像存在一个矩阵中,故傅里叶变化是将其作为一个周期离散信号进行处理的;而其频谱也是周期离散的,若用ω表示频谱,周期为2π;若以μ表示频谱,则周期为N(样本数),μ可以看做基频的倍数值。
3.图像经过二维傅里叶变换后,其系数矩阵代表对应的某一频率的信号的幅度(包含幅值大小和相位,幅值大小代表灰度信息,相位包含形状信息)。如果没有进行频谱的平移,则四个角上最亮,因为代表了低频,能量大。

常用matlab指令

1.从图形文件中读取图像

%filename包含后缀名
%对于RGB图像,返回的uint8型的m*n*3的矩阵
A = imread(filename)

2.各种图像之间的转换

%将 RGB 图像转换为索引图像
%RGB代表RGB表示的矩阵 Q代表Q种颜色的索引图像 cmap得到的是Q*3的颜色索引矩阵
[X,cmap] = rgb2ind(RGB,Q)%将灰度转换为索引图像 注意cmap的所有颜色向量3个坐标都相同,因为表示的是灰度
[X,cmap] = gray2ind(I,c)%RGB转换为灰度
I = rgb2gray(RGB)

3.显示图像
这里注意如果double的矩阵一定要保证在[0,1]范围内,否则输出会全白

%显示矩阵X代表的索引图像 map为颜色索引矩阵
imshow(X,map)%显示灰度图像I,根据I中的像素值范围对显示进行转换
imshow(I,[])

4.数据类型转换

%将uint8转换为double,[0,1]
A=im2double(A)%将double转换为uint8
A=im2uint8(A)

5.傅里叶变化相关

%正变换
F=fft2(A);%逆变换
F=fftshift(F);

6.其他

%将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区
subplot(m,n,p)%键盘输入函数 显示 prompt 中的文本并等待用户输入值后按Return(Enter)键。
x = input(prompt)%串联变量和字符串
out=['operated ' num2str(t) '%'];

相关功能的代码

(1)作出傅里叶变换后的频谱图

%读入图像 uint8 RGB
A0=imread('D:\lineNoise.png');
%将RGB转换为灰度
A=rgb2gray(A0);
%将uint8转换为[0,1]的double,增强运算精度
A=im2double(A);%二维傅里叶变换,得到各个频率的幅度
F=fft2(A);
%对频谱进行平移,将低频平移到中间位置
F=fftshift(F);
%对幅度进行log缩放
F1=log(1+abs(F));
%直接取幅度的模
F2=abs(F);% 傅里叶反变换,如果没有平移回来的话,原图像相当于乘了一个(-1)^(x+y),失真
% F=fftshift(F);
% A2=ifft2(F);F1=uint8(F1);
F2=uint8(F2);%增加图片的个数
subplot(1,2,1);
%像素值范围对显示进行转换,最小值显示为黑色,将最大值显示为白色
%使用了log进行缩放
imshow(F1,[]);
%未使用log缩放
subplot(1,2,2);
imshow(F2,[]);imwrite(F2,'D:\b.png');

结果:

左边是经过log衰减的,减小得到的系数矩阵的变化幅度,右边是未经过处理的,变化较大但是依旧可以观察。

(2)对一幅图像进行离散余弦变换,设置不同的阈值,保留部分系数

A=imread('D:\graycat.png');
%将rgb转换为灰度值
A1=rgb2gray(A);
%作离散余弦变换
C1=dct2(A1);
%对幅度作log缩放
C2=log(1+abs(C1));%输入阈值的参数t [0,1]
t=input('please input the  threshold value which is between 0 and 1\n');
%将t拓展到和频率相同的取值范围
b=size(C2);
t1=t*b(1);
%将t转换为整数再转换回double
t1=uint16(t1);
t1=double(t1);%大于阈值频率的都清零
C1(t1:end,:)=0;
C1(:,t1:end)=0;%离散余弦反变换
A2=idct2(C1);%输出操作后的图形和原始图像
subplot(1,2,1);
A2=uint8(A2);
imshow(A2);
out=['operated ' num2str(t) '%'];
title(out)
subplot(1,2,2);
imshow(A1)
title('orignal')%写入图片
imwrite(A2,'D:\a.png');

结果:
当阈值设到0.2以下后,反变换回来的图像才有明显失真,说明图像的能量主要分布在低频区。

数字图像处理(作业一)——matlab工具箱初探相关推荐

  1. 几何畸变图像恢复 openCV3 - 数字图像处理作业3

    几何畸变图像恢复 OpenCV3 - 数字图像处理作业3 作业3:相同条件下拍到的棋盘图和日历钟表图,尝试建立几何畸变关系,并对它们进行恢复.注意:不能采用椭圆的变换. 算法步骤: 坐标变换: 在畸变 ...

  2. matlab数字图像实验报告,数字图像处理实验报告(matlab)

    数字图像处理实验报告(matlab) 学院:自动化学院 班级:电081班 姓名:李林树 学号:40850099 2011年10月 实验一 直方图均衡化 一. 实验目的: 1. 熟悉图像数据在计算机中的 ...

  3. 《数字图像处理》冈萨雷斯matlab函数statmoments、计算均值和n阶中心矩,并返回行向量

    <数字图像处理>冈萨雷斯matlab函数statmoments statmoments:计算均值和n阶中心矩,并返回行向量 ○ [v, unv] = statmoments(p,n) ○ ...

  4. matlab图像处理基础实验,数字图像处理实验报告 Matlab图像处理基础

    <数字图像处理实验报告 Matlab图像处理基础>由会员分享,可在线阅读,更多相关<数字图像处理实验报告 Matlab图像处理基础(27页珍藏版)>请在人人文库网上搜索. 1. ...

  5. 数字图像处理之在matlab中做彩色图像的加减乘除

    数字图像处理之在matlab中做彩色图像的加减乘除 图像与数做运算 clc; clear all; A = imread('C:\Users\Administrator\Desktop\333.jpg ...

  6. 数字图像处理应用matlab,数字图像处理与应用(MATLAB版)

    第 1章 绪论 1n 1.1 图像的概念 1n 1.2 图像的分类 2n 1.3 图像的表示 2n 1.3.1 图像信号的表示 2n 1.3.2 数字图像的表示 3n 1.3.3 颜色模型 4n 1. ...

  7. 数字图像处理:基于MATLAB的车牌识别项目

    学过了数字图像处理,就进行一个综合性强的小项目来巩固一下知识吧.前阵子编写调试了一套基于MATLAB的车牌识别的项目的代码.今天又重新改进了一下代码,识别的效果好一点了,也精简了一些代码.这里没有使用 ...

  8. 数字图像处理作业——直方图均衡处理

    将下面的图像进行直方图均衡处理. (1)列表写出图像直方图均衡化的过程(书上的格式或补充课件上的格式均可以): (2)画出均衡化以后的图像: (3)画出原始图像直方图和均衡化以后的图像直方图. [例一 ...

  9. 数字图像处理基础(matlab)Ⅰ:图像读取,显示等

    文章目录 前言 一.实验目的 二.实现原理 三.算法设计 3.1利用imread( )函数读取图像 3.2 分别显示图像的红.绿和蓝色分量的强度 3.3 将图像转换为灰度图,显示灰度结果图像进行对比 ...

最新文章

  1. 接到面试通知你该做什么?
  2. 【百家稷学】深度学习计算机视觉生产实习(山西农业大学暑期实训)
  3. java基础语法以及进制的转换
  4. 存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20
  5. 56个民族sql语句
  6. Spark SQL在携程的实践经验分享
  7. html5 --- 使用canvas画一个渐变矩形
  8. jzoj1403-渡河【SPFA】
  9. appium屏蔽软键盘
  10. find 排除_排列五248期定位预测,大师排除两头两尾
  11. 南加大计算机硕士学制,2020年南加州大学硕士读几年
  12. 【转】Nero v9.4.26.0 多语(简体中文)版+完美破解(世界上最多人使用的烧录软体)...
  13. Unity SRP从零搭建一套图形渲染管线
  14. 梦殇 chapter six
  15. 【邢不行|量化小讲堂系列48-实战篇】听说今天融资盘爆仓了?来看看融资数据在量化投资中的作用
  16. 供应链金融与区块链02——论文阅读
  17. 斯坦福大学自然语言处理第七课“情感分析(Sentiment Analysis)”
  18. Ubuntu使用sudo cp命令复制文件夹时出现“cp: omitting directory”问题
  19. TOP100summit分享实录 | 如何构建一套全链路的故障追踪和故障自愈系统?
  20. 域名解析-/etc/hosts

热门文章

  1. Java 并发编程之 Callable 和 Future
  2. Vue-cli3 项目搭建和启动
  3. php项目如何导jdbc包,JDBC-idea导入mysql连接java的jar包(mac)的方法
  4. python判断数据在某个区间
  5. python求极值(极大值、极小值)
  6. Python生成多个浮点数、二维浮点数
  7. pandas series 判断是否包含某个值
  8. 计算机知识点汇总职高,计算机辅导(知识点汇总) - 慈溪职高 网站首页.doc
  9. php中的css类怎么查找,CSS 样式表中的类和伪类
  10. mysql被更新失败_更新mysql出错:出错原因 You are using safe update mode