b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

数字图像处理-(01)数字图像的基本操作(MATLAB)

电脑杂谈  发布时间:2020-10-05 19:06:27  来源:网络整理

数字图像处理吧_数字图像处理吧

本文是本科系统学习数字图像处理的开始。我之前断断续续地学习了一些与FPGA和Matlab相关的知识。它与学校开设这门课程的时间恰逢。我将在不久的将来更新有关数字图像的知识。因为博客作者我将为今年的入学考试做准备,所以我将花更少的时间在博客上。

数字图像1.的灰度或二进制转换为索引图像gray2ind

将灰度或二进制图像转换为索引图像

[X,cmap] = gray2ind(I,c)

[X,cmap] = gray2ind(BW,c)

说明:

I-灰度图像-数字阵列

BW-二进制图像-数字阵列

c-颜中的颜色数-正整数

以下将图像转换为128、64、16灰度索引图像

clc;
clear all;close all;
img=imread(../img1.jpg);
img=rgb2gray(img);
figure;
imshow(img);
title(original);
[x,map]=gray2ind(img,128);
figure;
imshow(x,map);
title(gray_128);
%%%%%%%%%%%重复操作%%%%%%%%%%%%%%
[x1,map1]=gray2ind(img,64);
figure;
imshow(x1,map1);
title(gray_64);
[x2,map2]=gray2ind(img,16);
figure;
imshow(x2,map2);
title(gray_16);

效果

当灰度级继续降低时,图片逐渐有失真的趋势

在这里插入图片描述

2.将索引图像转换为ind2gray的灰度图像

I = ind2gray(X,cmap)

I = ind2gray(X,cmap)将带有颜的X索引图像转换为cmap到灰度图像I。indd2ray功能从输入图像中删除色相和饱和度信息,同时保持亮度。

X—索引图像----数字数组

数字图像处理吧_数字图像处理吧

cmap-颜-c-by-3数字数组

clc;
clear all;close all;
load trees
img = ind2gray(X,map);
figure,imshow(X,map);
title(orginal);
figure,imshow(img);
title(gray_image);

效果

在这里插入图片描述

3.将RGB图像转换为灰度图像rgb2gray

将RGB图像或彩转换为灰度图像

语法:

I = rgb2gray(RGB)

newmap = rgb2gray(map)

clc;
clear all;close all;
img=imread(../img1.jpg);
gray=rgb2gray(img);
subplot(1,2,1);imshow(img);title(original);
subplot(1,2,2);imshow(gray);title(gray);

效果

在这里插入图片描述

4.RGB图像转换为索引图像rgb2ind

rgb2ind函数对于减少RGB图像中的颜色数量非​​常有用。

将真彩像转换为索引图像。在matlab命令窗口中输入doc rgb2ind或help rgb2ind以获得有关此功能的更多帮助信息。

此功能将真彩像转换为索引图像。由于RGB图像的一个像素占据三个字节,因此R,G和B分量的值被分别存储,而索引图像的一个像素占据一个字节。将灰度图像转换为索引图像时,关系为3字节到1字节。通常有三种算法:

灰色=(R + G + B)/ 3,即,将R,G和B的三个分量的平均值作为索引图像中相应像素的像素值。

gray = min(R,G,B),即R,G和B的最小成分用作索引图像相应像素的像素值。

数字图像处理吧_数字图像处理吧

灰色=0.3 * R +0.59 * G +0.11 * B(或表示为:灰色=((77 * R + 151 * G + 28 * B)>> >>8))

通话格式:

[X,map] = rgb2ind(RGB,n)

使用第二种算法将真彩像转换为索引图像,其中n指定地图中颜色项的数量,n最多不能超过65536。

返回值中的映射是索引图像的调色板。

X = rgb2ind(RGB,map)

使用调色板映射将真彩像转换为索引图像,即在调色板中找到与真彩像最接近的颜色作为转换后的索引图像的像素值。贴图中的颜色项数(即size(map,1)))不能超过65536。

[X,map] = rgb2ind(RGB,tol)

使用第一种算法将真彩像转换为索引图像,该映射最多包含(floor(1 / tol)+1) ^ 3种颜色,并且tol必须介于0.0和[k1之间] 0之间的数字。

[…] = rgb2ind(...,dither_option)

clc;
clear all;close all;
img=imread(../lena.jpg);
subplot(2,2,1);imshow(img);title(original);
[x,map]=rgb2ind(img,16);
subplot(2,2,2);imshow(x,map);title(最小方差量化抖动);
[x1,map1]=rgb2ind(img,0.5);
subplot(2,2,3);imshow(x,map);title(均值化抖动处理);
[x2,map2]=rgb2ind(img,16,nodither);
subplot(2,2,4);imshow(x,map);title(不抖动);

效果

在这里插入图片描述

5.将索引图像转换为RGB图像ind2rgb

类似于ind2gray

clc;
clear all;close all;
load trees
img = ind2rgb(X,map);
figure,imshow(X,map);
title(orginal);
figure,imshow(img);
title(rgb_image);

在这里插入图片描述

6.通过阈值转换为二进制图像im2bw

数字图像处理吧_数字图像处理吧

im2bw使用阈值转换方法将灰度图像转换为二进制图像。所谓的二值图像通常是指只有纯黑色(0)和纯白色(255))两种颜色的图像,当然,也可以是其他两种颜色的组合。

语法

BW = im2bw(I,level)

BW = im2bw(X,地图,水平)

BW = im2bw(RGB,级别)

该级别用于设置阈值。级别值范围[0,1]

clc;
clear all;close all;
load trees
img = im2bw(X,map,0.3);
subplot(2,2,1);imshow(X,map);title(orginal);
subplot(2,2,2);imshow(img);title(bw_ind);
rgb=imread(../img1.jpg);
rgb_bw = im2bw(rgb,0.3);
subplot(2,2,3);imshow(rgb);title(orginal);
subplot(2,2,4);imshow(rgb_bw);title(bw_rgb);

效果

在这里插入图片描述

7.多级阈值处理方法将灰度图像转换为索引图像灰度切片

语法:

X = grayslice(I,n); -----将亮度量化为n级,默认值为64

X = grayslice(I,v); -----根据阈值向量v划分图像的亮度

clc;
clear all;close all;
img=imread(../img2.jpg);
subplot(2,2,1);imshow(img);title(original);
img1 = grayslice(img,64);
subplot(2,2,2);imshow(img1,jet(16));title(slices-64);
img2 = grayslice(img,128);
subplot(2,2,3);imshow(img,jet(128));title(slices-128);

效果

在这里插入图片描述

错误摘要:

使用matlab处理音频文件时,命令行上会弹出提示,请尝试将SCRIPT脚本作为函数执行

数字图像处理吧_数字图像处理吧

因为书面文件名和执行函数具有相同的名称。

例如,我的s​​ound.m和函数sound(y,fs)具有相同的名称,因此错误失败

8.图像操作

代数运算是指对两个输入图像进行加,减,乘或除运算以获得输出图像的运算。在加法和乘法的情况下,可能有两个以上的图像参与计算。通常,输入条件之一可以是常数。四个图像处理代数运算的数学表达式如下:

C(x,y)= A(x,y)+ B(x,y)

C(x,y)= A(x,y)-B(x,y)

C(x,y)= A(x,y)* B(x,y)

C(x,y)= A(x,y)/ B(x,y)

添加操作

%利用imadd函数实现两幅图像的叠加
bw1=imread(../img2.jpg);
bw2=imread(../img1.jpg);
o_bw=imadd(bw1,bw2);
subplot(1,3,1);imshow(bw1);title(原始图像1);
subplot(1,3,2);imshow(bw2);title(原始图像2);
subplot(1,3,3);imshow(o_bw);title(两幅图叠加);

在这里插入图片描述

减号操作

bw1=imread(../bw2.jpg);
bw2=imread(../bw1.jpg);
o_bw=imsubtract(bw1,bw2);
subplot(1,3,1);imshow(bw1);title(原始图像1);
subplot(1,3,2);imshow(bw2);title(原始图像2);
subplot(1,3,3);imshow(o_bw);title(输出);

在这里插入图片描述

乘法运算

bw1=imread(../bw2.jpg);
bw2=imread(../bw1.jpg);
o_bw=immultiply(bw1,bw2);
subplot(1,3,1);imshow(bw1);title(原始图像1);
subplot(1,3,2);imshow(bw2);title(原始图像2);
subplot(1,3,3);imshow(o_bw);title(输出);

在这里插入图片描述

除操作

bw1=imread(../bw2.jpg);
bw2=imread(../bw1.jpg);
o_bw=imdivide(bw1,bw2);
subplot(1,3,1);imshow(bw1);title(原始图像1);
subplot(1,3,2);imshow(bw2);title(原始图像2);
subplot(1,3,3);imshow(o_bw);title(输出);

在这里插入图片描述


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-324109-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...