光电图像处理相关程序文档格式.docx
- 文档编号:20097027
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:47
- 大小:39.95KB
光电图像处理相关程序文档格式.docx
《光电图像处理相关程序文档格式.docx》由会员分享,可在线阅读,更多相关《光电图像处理相关程序文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
显示lines伪彩色'
subplot(3,3,6),subimage(J);
subimage显示原图'
subplot(3,3,7),imshow(K,[120,180]);
显示灰度120-180'
subplot(3,3,8),imshow(K,map);
imshow显示索引图'
subplot(3,3,9),subimage(K,map);
subimage显示索引图'
%图像保存imwrite函数
%imwrite(I,'
filename'
'
format'
)-保存无调色板的图像
%imwrite(X,MAP,'
)-保存有调色板的图像
)-文件名中含格式
parameters'
value'
)-指定保存参数
%文件格式:
bmp、jpg、pcx、tif。
I=imread('
imwrite(I,'
peacock24b.tif'
tif'
[J,map]=imread('
subplot(1,2,1);
subimage(I);
jpg格式原图'
subplot(1,2,2);
subimage(J);
tif格式图'
%图像类型转换
转换类型
转换函数
用处
①
真彩图像→索引图像
X=dither(RGB,map)
节省存储空间,假彩色
②
索引图像→真彩图像
RGB=ind2rgb(X,map)
便于图像处理
③
真彩图像→灰度图像
I=rgb2gray(RGB)
得到亮度分布
④
真彩图像→二值图像
BW=im2bw(RGB,level)
阈值处理,筛选
⑤
索引图像→灰度图像
I=ind2gray(X,map)
Newmap=rgb2gray(map)
⑥
灰度图像→索引图像
[X,map]=gray2ind(I,n),
X=grayslice(I,n)
X=grayslice(I,v)
伪彩色处理
⑦
灰度图像→二值图像
BW=dither(I)
BW=im2bw(I,level)
⑧
索引图像→二值图像
BW=im2bw(X,map,level)
⑨
数据矩阵→灰度图像
I=mat2gray(A,[max,min])
I=mat2gray(A)
产生图像
%1.真彩图像→索引图像
%X=dither(RGB,map)%通过颜色抖动实现转换,RGB可以是double或uint8类型,X超过256色则为double类型,否则输出为uint8型
%2.索引图像→真彩图像
%RGB=ind2rgb(X,map)%X可以是double或uint8类型,RGB为double类型
%3真彩图像→灰度图像
%I=rgb2gray(RGB)%RGB可以是double或uint8类型,I类型同RGB
%peacockrgb-ind
clf,rgbpeacock=imread('
map=jet(256);
peacockind=dither(rgbpeacock,map);
subplot(3,2,1);
subimage(rgbpeacock);
孔雀真彩图'
subplot(3,2,2);
subimage(peacockind,map);
孔雀索引图'
)
%treesind-rgb
[treesind,map]=imread('
rgbtrees=ind2rgb(treesind,map);
subplot(3,2,3);
subimage(treesind,map);
树索引图'
subplot(3,2,4);
subimage(rgbtrees);
树真彩图'
%fishrgb-gray
rgbfish=imread('
fishgray=rgb2gray(rgbfish);
subplot(3,2,5);
subimage(rgbfish);
鱼真彩图'
subplot(3,2,6);
subimage(fishgray);
鱼灰度图'
%4真彩图像→二值图像
%BW=im2bw(RGB,level)%设置亮度阈值level,将真彩图像转换为二值图像,BW为uint8型
%5索引图像→灰度图像
%
(1)%I=ind2gray(X,map)%X可以是double或uint8类型,map为double类型
%
(2)%Newmap=rgb2gray(map)%将彩色调色板map转换为灰度调色板Newmap
%6灰度图像→索引图像
%
(1)%[X,map]=gray2ind(I,n)%将灰度图像转换为灰度级为n的索引图像X,n的默认值为64;
%
(2)%X=grayslice(I,n)%将灰度图像I均匀量化为n个等级,然后转换为伪彩色图像X;
%(3)%X=grayslice(I,v)%按指定的阈值矢量v(其中每个元素在0和1之间)对图像I进行阈值划分,然后转换成%索引图像,I可以是double类型、uint8类型和uint16类型,map的行不大于256,则X为uint类型,否则为double类型
%真彩图像→二值图像
clf,peacock24brgb=imread('
peacock24bbw=im2bw(peacock24brgb,0.5);
peacock24bgray=rgb2gray(peacock24brgb);
subplot(3,3,1);
subimage(peacock24brgb);
subplot(3,3,2);
subimage(peacock24bgray);
孔雀灰度图'
subplot(3,3,3);
subimage(peacock24bbw);
孔雀二值图'
%索引图像→灰度图像
loadtrees;
I=ind2gray(X,map);
Newmap=rgb2gray(map);
subplot(3,3,4);
subimage(X,map);
索引图'
subplot(3,3,5);
格式1灰度图'
subplot(3,3,6);
subimage(X,Newmap);
格式2灰度图'
%灰度图像→索引图像
[X1,map1]=gray2ind(J,16);
X2=grayslice(J,8);
subplot(3,3,7);
灰度图'
subplot(3,3,8);
subimage(X1);
16灰度级图'
%subplot(3,3,9);
subimage(X2,hot(8));
均匀量化图'
subimage(X3,jet(8));
非均匀量化图'
%7、灰度图像→二值图像
%BW=dither(I);
%用抖动的方式实现转换,I可以是double类型和uint8类型
%BW=im2bw(I,level);
%用阈值方式转换,BW为uint8类型
clf,I=imread('
peacock24b.tif'
BW1=dither(I);
BW2=im2bw(I,0.5);
subplot(2,2,1);
subplot(2,2,3);
subimage(BW1);
抖动二值化'
subplot(2,2,4);
subimage(BW2);
阈值二值化'
%8索引图像→二值图像
%BW=im2bw(X,map,level)%X可以是double类型和uint8类型,BW为uint8类型
clf,loadtrees;
BW=im2bw(X,map,0.5);
subimage(BW);
二值图'
%9数据矩阵→灰度图像
%
(1)%I=mat2gray(A,[max,min])%按指定的取值区间[max,min]将数据矩阵A转换为灰度图像I
%
(2)%I=mat2gray(A)%A为double类型,I为double类型
clf;
peacock24b.tif.tif'
A=filter2(fspecial('
sobel'
),I);
J=mat2gray(A);
原图'
转换图'
图像的加运算
I=imread('
rice.png'
%读取图像,大小为256*256,类型为uint8
J=imread('
cameraman.tif'
%读取图像,大小为256*256,类型为uint8
K=imadd(I,J,'
uint16'
%两幅图像相加,K的图像格式为uint16
L=imadd(I,120);
%图像和一个常数相加
figure;
%依次显示四幅图像
subplot(221);
imshow(I);
subplot(222);
imshow(J);
subplot(223);
imshow(K,[]);
subplot(224);
imshow(L,[]);
图像的减运算
%读取图像
K=imsubtract(I,J);
%两幅图像相减
L=imsubtract(I,120);
%一幅图像减去一个常数
图像的乘运算
moon.tif'
I16=uint16(I);
%转换图像数据类型
J=immultiply(I16,I16);
%同一幅图像相乘
K=imread('
L=immultiply(K,0.5);
%图像乘以一个常数
imshow(K);
imshow(L);
图像的除运算
Ip=imdivide(I,J);
%两幅图像相除
K=imdivide(I,2);
%图像跟一个常数相除
imshow(J,[]);
imshow(Ip,[]);
图像的一般线性运算
K=imlincomb(1,I,1,J,'
%两幅图像相加,加权系数分别为1,1
L=imlincomb(2,I);
%一幅图像相乘,加权系数为2
图像的逻辑运算
I1=im2bw(I);
%转化为二值图像
J1=im2bw(J);
K1=I1&
J1;
%逻辑与运算
K2=I1|J1;
%逻辑或运算
K3=~I1;
%逻辑非运算
K4=xor(I1,J1);
%异或运算
imshow(I);
imshow(J);
imshow(I1);
imshow(J1);
imshow(K1);
imshow(K2);
imshow(K3);
imshow(K4);
图像的缩放
[m,n]=size(I);
J1=imresize(I,0.2);
%缩小0.2倍
J2=imresize(I,8,'
nearest'
%最近邻放大8倍
J3=imresize(I,[8*m8*n],'
bilinear'
%双线性放大8倍
imshow(J2);
imshow(J3);
图像的旋转
%读取图像
J1=imrotate(I,-45,'
bicubic'
%使用bicubic插值顺时针旋转45°
J2=imrotate(I,45,'
crop'
%使用crop方式显示旋转后图像
J3=imrotate(I,45,'
loose'
%使用loose方式显示旋转后图像
subplot(222);
subplot(224);
图像的交互式裁剪
circuit.tif'
figure,imshow(I)
I0=imcrop;
figure,imshow(I0);
I2=imcrop(I,[7568130112]);
imshow(I),figure,imshow(I2)
快速傅里叶变换
%二维离散福利叶变换的快速变换
%Y=fft2(X,m,n);
%X为要进行变换的矩阵,m,n是返回的变换矩阵的行数和列数,m,n可以省略
%Y=fft2(X);
则返回的Y与X的行数和列数相同
%二维离散福利叶变换快速反变换
%Y=ifft2(X,m,n);
%fftshift
%将傅里叶变换结果中零频率成分移到矩阵中心,有利于观察频谱。
%例
f=zeros(30,30);
f(5:
24,13:
17)=1;
%生成一矩形函数
F0=fft2(f);
%二维傅立叶变换
F2=log(abs(F0));
F=fft2(f,256,256);
%先将30行30列矩阵填充零后变成256行256列数据矩阵
F1=fftshift(F);
%将零频率移到中心位置
imshow(f,'
InitialMagnification'
fit'
%以合适窗口大小显示f
矩形窗口原图,返回30行30列'
imshow(F2,[-15],'
%确定像素值的显示范围
傅里叶变换幅值的对数分布30行30列'
imshow(log(abs(F)),[-15]);
%
返回矩阵256行256列'
imshow(log(abs(F1)),[-15]);
%对数显示频移后的图像
频移后的傅里叶变换图'
%B=dct2(A)%二维离散余弦变换
%B=dct2(A,m,n)%二维离散余弦变换,m,n是变换返回的矩阵的行数和列数
%B=dct2(A,[m,n])%二维离散余弦变换,m,n是变换返回的矩阵的行数和列数
%B=dct2(A)
%B=idct2(A)%二维离散余弦变换
%B=idct2(A,m,n)%二维离散余弦变换,m,n是变换返回的矩阵的行数和列数
%B=idct2(A,[m,n])%二维离散余弦变换,m,n是变换返回的矩阵的行数和列数
%B=idct2(A)
%D=dctmtx(n)%返回二维离散余弦变换的变换矩阵,n取8或16
%例:
离散余弦变换和逆变换
RGB=imread('
autumn.tif'
I=rgb2gray(RGB);
%转化为灰度图像
J=dct2(I);
%离散余弦变换
figure,imshow(log(abs(J)),[]),%显示离散余弦变换的系数
colormap(jet(64)),
colorbar
J(abs(J)<
10)=0;
%置小系数为0
K=idct2(J);
%离散余弦逆变换
figure,
subplot(121),imshow(I);
subplot(122),imshow(K,[0255])
DCT用于图像压缩
I=im2double(I);
%转化为double型
T=dctmtx(8);
%的变换矩阵
dct=@(x)T*x*T'
;
%DCT变换公式
B=blkproc(I,[88],dct);
%分块进行DCT变换
mask=[11110000
11100000
11000000
10000000
00000000
00000000];
%DCT变换的小系数置为0
B2=blkproc(B,[88],@(x)mask.*x);
%分块选择DCT变换的系数
invdct=@(x)T'
*x*T;
%DCT逆变换公式
I2=blkproc(B2,[88],invdct);
%分块重构
subplot(121),imshow(I),subplot(122),imshow(I2)
%显示直方图
011.tif'
%显示原图像
subplot(122),imhist(I,2)%显示其直方图
%直方图均衡化
tire.tif'
J=histeq(I);
%显示原图像和均衡化后的图像
subplot(221),imshow(I),title('
显示原图像'
subplot(222),imshow(J),title('
均衡化后的图像'
subplot(223),imhist(I,64),title('
显示原图像的直方图'
subplot(224),imhist(J,64),title('
均衡化后图像的直方图'
%调整灰度范围
pout.tif'
J=imadjust(I);
%调整图像灰度
subplot(121),imshow(I),title('
subplot(122),imshow(J),title('
调整图像灰度'
%imjust函数用于展现图像的细节,调节图像灰度到指定范围
J=imadjust(I,[0,0.2],[0.51]);
%调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光电 图像 处理 相关 程序