没有合适的资源?快使用搜索试试~ 我知道了~
图像处理的基本知识.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2022-07-02
05:46:37
上传
评论
收藏 38KB DOCX 举报
温馨提示
试读
12页
。。。
资源推荐
资源详情
资源评论
clear;clc
x=[ 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 ];
y=[ -0.01 0.045 0.12 0.2 0.33 0.52 0.67 0.95 1.20 1.45 1.78 ];
P1 = POLYFIT(x,y,1);
P2 = POLYFIT(x,y,2);
P3 = POLYFIT(x,y,3);
y1=polyval(P1,x);
y2=polyval(P2,x);
y3=polyval(P3,x);
plot(x,y,'o',x,y1,'-',x,y2,'--',x,y3,':')
xlabel('x'),ylabel('y')
legend('original','1','2','3',2)
MATLAB 图像处理基本知识
MATLAB 基本的使用方法
1.
读取图像:用 imread 函数读取图像文件,文件格式可以是 TIFF、JPEG、GIF、BMP、PNG 等。
>> f = imread('chestxray.jpg');
比如
2.
读进来的图像数据被保存在变量 f 中。尾部的分号用来抑制输出。如果图片是彩色的,可以用 rgb2gray
转换成灰度图:
>> f = rgb2gray(f);
然后可以用 size 函数看图像的大小
>> size(f)
如果 f 是灰度图像,则可以用下面的命令把这个图像的大小赋给变量 M 和 N
>> [M, N] = size(f);
用 whos 命令查看变量的属性
>> whos f
3.
4.
显示图像:用 imshow 显示图像
imshow(f, G)
其中 f 是图像矩阵,G 是像素的灰度级,G 可以省略。比如
>> imshow(f, [100 200])
图像上所有小于等于 100 的数值都会显示成黑色,所有大于等于 200 的数值都会显示成白色。pixval 命
令可以用来查看图像上光标所指位置的像素值。
pixval
例如
>> f = imread('rose_512.tif');
>> whos f
>> imshow(f)
如果要同时显示两幅图像,可以用 figure 命令,比如
>> figure, imshow(g)
用逗号可以分割一行中的多个命令。imshow 的第二个参数用一个空的中括号:
>> imshow(h, [])
可以使动态范围比较窄的图像显示更清楚。
5.
6.
写图像。用 imwrite 写图像
imwrite(f, 'filename')
文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式。比如
>> imwrite(f, 'patient10_run1.tif', 'tif')
也可以写成
>> imwrite(f, 'patient10_run1.tif')
还可以有其他参数,比如 jepg 图像还有质量参数:
>> imwrite(f, 'filename.jpg', 'quality', q)
q 是 0 到 100 之间的一个整数。对比不同质量的图像效果。用 imfinfo 命令可以查看一个图像的格式信息,
比如
>> imfinfo bubbles25.jpg
可以把图像信息保存到变量中
>> K = imfinfo('bubbles25.jpg');
>> image_bytes = K.Width * K.Height * K.BitDepth / 8;
>> compressed_btyes = K.FileSize;
>> compression_ratio = image_bytes / compressed_bytes
7.
数据类型。MATLAB 的数据类型包括:
double 双精度浮点
8.
9.
uint8 无符号 8 位整数
10.
11.
12.
13.
14.
15.
16.
17.
uint16 无符号 16 位整数
uint32 无符号 32 位整数
int8
有符号 8 位整数
int16 有符号 16 位整数
int32 有符号 32 位整数
single 单精度
char
字符
logical 逻辑型(二值)
数据类型转换
B = data_class_name(A)
比如
>> C = [1.4 1.5]
>> D = uint8(C)
图像类型分为:
Intensity image 灰度图
Binary image
Indexed image 索引图
RGB image 彩色图
在灰度图中每个像素可以是整型、浮点型或者逻辑型。图像类型的像素类型可以转换
function to from
im2uint8 uint8 logical,uint8,uint16,double
im2uint16 uint16 logical,uint8,uint16,double
mat2gray double double
im2double double logical,uint8,uint16,double
im2bw logical uint8,uint16,double
二值图
比如
g = mat2gray(A, [Amin, Amax]);
g = mat2gray(A);
g = im2double(h);
g = im2bw(f, T)
其中 A 是浮点型的图像,Amin 和 Amax 是浮点数的范围,h 和 f 是任意类型的图像,T 是分割的阈值。
18.
19.
数组(向量)索引:创建向量(数组):
>> v = [1 3 5 7 9 11 13]
用小括号对向量进行索引(取数组中的某个元素):
>> v(2)
转置(将行向量通过转置变成列向量):
>> w = v.'
取向量其中的一部分:
>> v(1:3) 第 1 个到第 3 个
>> v(2:4)
>> v(3:end) 第 3 个到最后一个
>> v(1:end)
>> v(:)
全部
>> v(1:2:end) 第 1 个到最后一个,每次增加 2
>> v(end:-2:1) 最后一个到第 1 个,每次减 2
其中 end 总是表示最后一个。
>> x = linspace(1, 5, 10)
>> v([1 4 5])
linspace 函数产生一个范围内的平均分布。
20.
21.
矩阵索引:创建矩阵
>> A = [1 2 3; 4 5 6; 7 8 9]
取矩阵中的一个元素
>> A(2, 3)
取矩阵中的一行或者一列
>> C3 = A(:, 3)
>> R2 = A(2, :)
取矩阵中某些行某些列
>> T2 = A(1:2, 1:3)
对矩阵中某些元素进行赋值:
>> B = A;
>> B(:, 3) = 0
用 end 表示最后一行或者最后一列:
>> A(end, end) 最后一行最后一列
>> A(end, end-2) 最后一行倒数第三列
>> A(2:end, end:-2:1) 第 2 行到最后一行,最后一列到第一列,每次减 2
>> E = A([1 3], [2 3]) 第 1、3 行,第 2、3 列
>> D = logical([1 0 0; 0 0 1; 0 0 0])
>> A(D) 取 A 中由 D 指定的位置上的元素
>> v = T2(:) 把矩阵变成一个向量
剩余11页未读,继续阅读
资源评论
G11176593
- 粉丝: 6672
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功