网站需要兼容哪些浏览器,建设什么网站可以赚钱,临平做网站电话,网站运营需要什么条件01-数字图像基础 图像类型 黑白(二值)图像 只有黑白两种颜色的图像称为黑白图像或单色图像#xff0c;图像的每个像素只能是黑或白#xff0c;没有中间的过渡#xff0c;故又称为二值图像。 二值图像的像素值只能为0或1#xff0c;图像中的每个像素值用1位存储。图像矩阵中…01-数字图像基础 图像类型 黑白(二值)图像 只有黑白两种颜色的图像称为黑白图像或单色图像图像的每个像素只能是黑或白没有中间的过渡故又称为二值图像。 二值图像的像素值只能为0或1图像中的每个像素值用1位存储。图像矩阵中用1表示白色0表示黑色。 灰色图像 在灰度图像中像素灰度级用8位表示所以每个像素都是介于黑色和白色之间的2562^8256种灰度中的一种灰度图像只有从黑到白的256种灰度色域而没有彩色。灰度取值范围为0255“0表示纯黑色“255”表示纯白色中间的数字表示黑白之间的过渡色。灰度值越小图像颜色越黑灰度值越大图像颜色越白。 彩色图像 彩色图像除有亮度信息外还包含有颜色信息。彩色图像的表示与所采用的彩色空间即彩色模型有关同一幅彩色图像如果采用不同的彩色空间表示则对其的描述可能会有很大的不同。常用的表示方法主要有真彩色图像和索引图像。 真彩色图像又称为24位彩色图像。在真彩色图像中每个像素由红、绿、蓝3个字节组成每个字节为8位表示0255不同的亮度值。这3个字节的组合可以产生1670万种不同的颜色。由于它所表达的颜色远远超出了人眼所能辨别的范围故将其称为“真彩色”。 在真彩色出现之前由于技术上的原因计算机在处理时并没有达到每个像素24位的真彩色水平为此人们创造了索引颜色。**索引图像既包括存放图像数据的二维矩阵还包括一个颜色索引矩阵称为MAP又称为映射图像。MAP矩阵也可以由二维数组表示矩阵大小由存放图像的矩阵元素的灰度值范围决定。**若矩阵元素灰度值范围为0255则MAP矩阵的大小为256×3矩阵的三列分别为R、G、B值。图像矩阵的每一个灰度值对应于MAP中的一行例如某一像素的灰度值为64则表示该像素与MAP矩阵的第64行建立了映射关系该像素在屏幕上的显示颜色由MAP矩阵第64行的R、G、B叠加而成。 图像的统计特性 f(i,j)表示大小为M*N的数字图像 图像熵 一幅图像如果共有个灰度值并且各灰度值出现的概率分别为p1,p2,pk,根据香农定理图像的平均信息量可以表示为 H − ∑ i 1 k p i l o g 2 ( p i ) H-\sum_{i1}^k p_ilog_2(p_i) H−i1∑kpilog2(pi) H称为信息熵当图像中的各灰度值出现的概率彼此相等时图像的熵最大对于一幅采用8bit表示的数字图像则信息熵的为 H − ∑ i 0 255 p i l o g 2 ( p i ) H-\sum_{i0}^{255} p_ilog_2(p_i) H−i0∑255pilog2(pi) clc;clear;close all;Iimread(lena.jpg); % I数组大小 512x512
imshow(I);title(Lena);
img_entropyentropy(I); %image_mean求出图像的信息熵
disp([img_entropy,num2str(img_entropy)]);% 计算图像的信息熵
% img为图像读入的矩阵img_entropy返回值图像的信息熵
function img_entropyentropy(img)imgdouble(img);[M,N]size(img);imgtranspose(img(:));Tzeros(1,256);for i1:256T(i)sum(img(i-1));T(i)T(i)/(M*N);endimg_entropy-T(T0)*transpose(log2(T(T0)));
end图像灰度平均值 灰度平均值是指一幅图像中所有的像素灰度值的算术平均值根据算术平均值定义灰度平均值计算公式如下 图像的灰度平均值反映了图像在物体不同部分的平均反射强度。 f ‾ ∑ i 0 M − 1 ∑ i 0 N − 1 f ( i , j ) M N \overline{f} \frac{\sum_{i0}^{M-1}\sum_{i0}^{N-1}f(i,j)}{MN} fMN∑i0M−1∑i0N−1f(i,j) function [result]image_mean(img)
%img为图像读入的矩阵result返回的是这些数求得的均值imgdouble(img);%影像矩阵的类型默认是uint8 0~255 如果不转换为double在求和时会溢出imgimg(:);%将影像变为n行一列采用单层循环就可以计算加快计算速度sum0;%用于求和for i1:size(img,1)sumsumimg(i);%求出矩阵中所有数之和endresultsum/size(img,1);%求出均值
endclc;clear;close all;% imread读取图片 imshow展示图片 %image_mean求出图像矩阵所有数值的均值
Iimread(lena.jpg); % I数组大小 512x512
imshow(I);title(Lena);
image_meanimage_mean(I);
disp(image_mean);
disp([image_mean,num2str(image_mean)]);在Matlab中采用函数mean2()计算矩阵的均值。 对于灰度图像图像数据是二维矩阵可以通过函数mean2()计算图像的平均灰度值。 对于RGB彩色图像数据Pmean2()所有颜色值的平均值。如果要计算RGB彩色图像每种颜色的平均值例如红色的平均值可 以采用mean2(P(:,:,1))。 clc;clear;close all;
%leaa.jpg 灰色图像 %leaa.png 彩色图像
rgb_img imread(lena.png); % 数组大小 512x512
gray_img imread(lena.jpg); % 数组大小 512x512
gray mean2(gray_img); %灰度图像均值
rgb mean2(rgb_img); %RGB图像均值
disp([gray_img_mean,num2str(gray)]);
disp([rgb_img_mean,num2str(rgb)]);r_mean mean2(rgb_img(:,:,1));
g_mean mean2(rgb_img(:,:,2));
b_mean mean2(rgb_img(:,:,3));
disp([RGB图像 r_mean,num2str(r_mean)]);
disp([RGB图像 g_mean,num2str(g_mean)]);
disp([RGB图像 b_mean,num2str(b_mean)]);注意点 ①图像矩阵的每个值都是uint8类型的uint8的范围是0-255在进行求和之前需要把图像矩阵转换成double类型如果不转换继续对uint8类型进行运算会产生溢出 ②将矩阵变为1×n或者n×1形式求和时可以采用单层循环加快计算速度。 图像灰度众数 图像灰度众数是指图像中出现次数最大的灰度值其物理意义是指一幅图像中面积占优的物体的灰度值信息。 clc;clear;close all;% imread读取图片 imshow展示图片 %image_mode求出图像矩阵的众数
Iimread(lena.jpg); % I数组大小 512x512
imshow(I);title(Lena);
image_modeimg_mode(I);
disp([image_mode,num2str(image_mode)]);function [result]img_mode(img)
%img为图像读入的矩阵result返回的是众数的数组imgimg(:);hzeros(1,256);%定义一个数组用来几率每个数值出现的次数
for i1:size(img,1)h(img(i)1)h(img(i)1)1;%由于矩阵的值时0-255所以加一以后才是索引值
endmah(1);
for i1:256
%求出现的最大次数if(h(i)ma)mah(i);end
endj1;
for i1:256
%得到所有出现次数最多的数if(mah(i))num(j)i;jj1;end
endresultnum;
end 注意点 ①众数可能有多个在有多个众数的情况下不能只返回一个 ②我们读入的数组矩阵的数值范围是0-255。 图像灰度中位数 图像灰度中值是指数字图像全部灰度级中处于中间的值(按照排序)当灰度级数为偶数时则取中间的两个灰度值的平均值。 例如若某一图像全部灰度级如下188,176,171,166,160则灰度中值为171。 图像灰度方差 灰度方差反映各像素灰度值与图像平均灰度值的离散程度计算公式如式 S ∑ i 0 M − 1 ∑ i 0 N − 1 [ f ( i , j ) − f ‾ ] 2 M N {S} \frac{\sum_{i0}^{M-1}\sum_{i0}^{N-1}[f(i,j)-\overline{f}]^2}{MN} SMN∑i0M−1∑i0N−1[f(i,j)−f]2 与图像信息熵类似**图像灰度方差同样是衡量图像信息量大小的主要度量指标**是图像统计特性中最重要的统计量之一方差越大图像的信息量越大。 图像的标准差 对于向量来说标准差s: s 1 n − 1 ∑ i 1 n ( x i − x ) 2 s \sqrt{\frac{1}{n-1} \sum_{i1}^{n} (x_i-x)^2 } sn−11i1∑n(xi−x)2 其中x为向量的平均值 x 1 n ∑ i 1 n x i x\frac{1}{n} \sum_{i1}^{n} x_i xn1i1∑nxi 在Matlab中std()计算向量的标准差std2()计算矩阵的标准差。 clc;clear;close all;% imread读取图片 imshow展示图片 %img_variance灰度图像方差
Iimread(lena.jpg); % I数组大小 512x512
% 默认输入图像为灰色图像如果不是需要将图像灰度化
%I rgb2gray(I);
imshow(I);title(Lena);
image_varimg_variance(I);
disp([image_var,num2str(image_var)]);s1 std2(I); %计算原图像标准差
disp([s1 img_var,num2str(s1)]);
img_var s1^2;
disp([img_var,num2str(img_var)]);
J histeq(I);%图像直方图均衡化
s2 std2(J); %计算均衡化的图像标准差
disp([s2 img_var,num2str(s2)]);自定义函数 function [ result ] img_variance(img)
%img灰度图像数组 imgimg(:);%把行向量变成列向量imgdouble(img);lengthsize(img,1);%得到a的维数sum0;img_meanimage_mean(img);%均值函数for i1:lengthsumsum(img(i)-img_mean)*(img(i)-img_mean);endresultsum/length;
endclc;clear;close all;% imread读取图片 imshow展示图片 %img_variance灰度图像方差
Iimread(lena.jpg); % I数组大小 512x512
imshow(I);title(Lena);
image_varimg_variance(I);
disp([image_var,num2str(image_var)]);图像灰度值域 图像的灰度值域是指图像最大灰度值fmax和最小灰度值fmin之查计算公式如下 f r a n g e ( i , j ) f m a x ( i , j ) − f m i n ( i , j ) f_{range}(i,j) f_{max}(i,j)-f_{min}(i,j) frange(i,j)fmax(i,j)−fmin(i,j) 数字图像直方图 图像直方图描述了一张图片像素值分布的情况我们知道例如对于一张sRGB图像我们可以看作是一个HW1的矩阵矩阵中每个元素的取值范围为[0,255],图像直方图h(g)定义为像素值为g的元素的个数。同理彩色图像中需要计算每个通道的图像直方图。 灰度直方图 灰度直方图是灰度级的函数描述的是图像中具有该灰度级的像元的个数。确定图像像元的灰度值范围以适当的灰度间隔为单位将其划分为若干等级以横轴表示灰度级以纵轴表示每一灰度级具有的像元数或该像元数占总像元数的比例值做出的条形统计图即为灰度直方图。 如下图所示做直方图的过程 直方图的性质 直方图反映了图像中的灰度分布规律。它描述每个灰度级具有的像元个数但不包含这些像元在图像中的位置信息。任何一幅特定的图像都有唯一的直方图与之对应但不同的图像可以有相同的直方图。如果一幅图像有两个不相连的区域组成并且每个区域的直方图已知则整幅图像的直方图是该两个区域的直方图之和 直方图的应用 对于每幅图像都可做出其灰度直方图。根据直方图的形态可以大致推断图像质量的好坏。由于图像包含有大量的像元其像元灰度值的分布应符合概率统计分布规律。假定像元的灰度值是随机分布的那么其直方图应该是正态分布。图像的灰度值是离散变量因此直方图表示的是离散的概率分布。若以各灰度级的像元数占总像元数的比例值为纵坐标轴做出图像的直方图将直方图中各条形的最高点连成一条外轮廓线纵坐标的比例值即为某灰度级出现的概率密度轮廓线可近似看成图像相应的连续函数的概率分布曲线。 灰色图像直方图Matlab代码实现 在图像加密中灰色直方图是一个重要的可视化分析指标
clc;clear;close all;
% imread读取图片 imshow展示图片
% imhist直方图 histeq直方图均衡化
Iimread(lena.jpg);
subplot(2,2,1);imshow(I);title(原始图像)
subplot(2,2,2);imhist(I);title(直方图)
Jhisteq(I);
subplot(2,2,3);imshow(J);title(直方图均衡化);
subplot(2,2,4);imhist(J);title(直方图);多维度图像的统计特性 数字图像处理中一幅RGB图像包含了三个波段的灰度图像。 对于多维度图像处理不仅要考虑单个维度图像的统计特性还应考虑各个维度间存在的关联特性。图像维度之间的关联特性不仅是图像分析的重要参数而且也是图像彩色合成方案的主要依据之一。在图像加密中图像之间的关联特性是一个重要的指标。 统计特性包括协方差 相关系数 协方差 设f(i,j)和g(i,j)表示大小为M*N的两幅图像则两者之间的协方差计算公式如下 其中N个维度的相互之间的协方差矩阵如下 ∑ ( S 11 2 S 12 2 . . . S 1 N 2 S 11 2 S 12 2 . . . S 1 N 2 . . . . . . . . . . . . S N 1 2 S N 2 2 . . . S N N 2 ) \sum \begin{pmatrix} S_{11}^{2} S_{12}^{2} ... S_{1N}^{2}\\ S_{11}^{2} S_{12}^{2} ... S_{1N}^{2}\\ ... ... ... ...\\ S_{N1}^{2} S_{N2}^{2} ... S_{NN}^{2} \end{pmatrix} ∑ S112S112...SN12S122S122...SN22............S1N2S1N2...SNN2 S g f 2 S f g 2 1 M N ∑ i 0 M − 1 ∑ j 0 N − 1 [ f ( i , j ) − f ‾ ] [ g ( i , j ) − g ‾ ] S_{gf}^{2} S_{fg}^{2}\frac{1}{MN} \sum_{i0}^{M-1} \sum_{j0}^{N-1} {\left [f(i,j)-\overline{f} \right ] }{\left [ g(i,j)-\overline{g} \right ]} Sgf2Sfg2MN1i0∑M−1j0∑N−1[f(i,j)−f][g(i,j)−g] clc;clear;close all;% imread读取图片 imshow展示图片 %img_variance灰度图像协方差
I1imread(lena.jpg); % I数组大小 512x512
I2imread(lena.jpg); % I数组大小 512x512
% 默认输入图像为灰色图像如果不是需要将图像灰度化
%I rgb2gray(I);
subplot(1,2,1);imshow(I1);title(Lena);
subplot(1,2,2);imshow(I2);title(mandril);
image_covimg_cov(I1,I2);
disp([image_cov,num2str(image_cov)]);function [ result ] img_cov(img_a,img_b)
%a,b分布为两张不同的图像img_aimg_a(:);img_bimg_b(:);img_adouble(img_a);img_bdouble(img_b);mi1image_mean(img_a);mi2image_mean(img_b);sum0;for i1:size(img_a,1)sumsum(img_a(i)-mi1)*(img_b(i)-mi2);endresultsum/size(img_a,1);
end 相关系数 数字图像处理中的相关系数反映了两个不同维度图像所含信息的重叠程度它是表示图像不同维度间相关程度的统计量。如果两个维度间的相关系数较大则表示两个维度具有较高的相关性一个维度与其本身的相关系数为1表明相关程度达到最大值。当相关系数非常大时仅选择其中的一个维度就可以表示两个维度的信息。相关系数表达式如下。 Cov(f,g)为图像f(i,j),g(i,j)的协方差dff为图像f(i,j)标准差dgg为图像g(i,j)标准差. C o v f g d f f d g g \frac{Cov_{fg}}{{d_{ff}d_{gg}}} dffdggCovfg C o v f g ∑ m ∑ n ( f − f ‾ ) ( g − g ‾ ) Cov_{fg} \sum_m\sum_n (f-\overline{f})(g-\overline{g}) Covfgm∑n∑(f−f)(g−g) d f f ∑ m ∑ n ( f − f ‾ ) 2 d_{ff} \sqrt{\sum_m\sum_n (f-\overline{f})^2} dffm∑n∑(f−f)2 d g g ∑ m ∑ n ( g − g ‾ ) 2 d_{gg} \sqrt{\sum_m\sum_n (g-\overline{g})^2} dggm∑n∑(g−g)2 N个维度的相关系数矩阵如下 R ( 1 r 12 r 13 . . . r 1 N 2 r 21 1 r 23 . . . r 2 N 2 . . . . . . . . . . . . . . . r N 1 r N 2 r N 3 . . . 1 ) R \begin{pmatrix} 1 r_{12} r_{13} ... r_{1N}^{2}\\ r_{21} 1 r_{23} ... r_{2N}^{2}\\ ... ... ... ... ...\\ r_{N1} r_{N2} r_{N3} ... 1 \end{pmatrix} R 1r21...rN1r121...rN2r13r23...rN3............r1N2r2N2...1 Matlab 代码实现 function [ result ] img_correlation(img_a,img_b )
%a,b分布为两张不同的图像img_aimg_a(:);img_bimg_b(:);img_xieimg_cov(img_a,img_b);%协方差img_var1img_variance(img_a);%方差img_var2img_variance(img_b);%方差resultimg_xie/(sqrt(img_var1)*sqrt(img_var2));
endclc;clear;close all;% imread读取图片 imshow展示图片 %image_corr相关系数
I1imread(lena.jpg); % I数组大小 512x512
I2imread(mandril.tif); % I数组大小 512x512
% 默认输入图像为灰色图像如果不是需要将图像灰度化
%I rgb2gray(I);
figure
subplot(1,2,1);imshow(I1);title(Lena);
subplot(1,2,2);imshow(I2);title(Mandril);
image_corrimg_correlation(I1,I2);
disp([image_corr,num2str(image_corr)]);J1 medfilt2(I1);%对灰色图像I1进行中值滤波
r_corr corr2(I1,J1);
disp([r_corr,num2str(r_corr)]);
figure
subplot(1,2,1);imshow(I1);
subplot(1,2,2);imshow(J1); 图像类型转换