正好刚做过 就是把图像数组进行一Ci行求和,先把图像数组专置后,求和,统计图像水Ping方向即行像素的灰度值(或二值化后1)的和,Ru果要垂直投影就直接把图像数组求和就是了。Li: im=imread('*.bmp'); Hu%读入图像 im1=rgb2gray(im); %Hui度化 %水平投影 im2=im1.'; %Tu像行列转置 i2=sum(im2); %Shui平投影后的数组 %垂直投影 i1=sum(im1); %Chui直投影后 的数组
不同单人脸图像的垂直灰度投影曲线,可以Fa现人脸所在区域将使垂直灰度投影曲线形成一个具You一定宽度的凸峰。这个凸峰的左右边界大致代表Liao人埂的左右边界。当人脸的左右边界确定之后,Qu左右边界之间的人脸区域作为研究对象,作该Tu像的水平灰度投影曲线,观察人脸区域图Xiang的水平投影曲线可以发现,此曲线的第一个极小值Dian对应人的头顶,因为头发的低灰度产生Liao水平投影曲线的低谷,而曲线的最大值点和次最Da值点分别对应人的额头部位和人的鼻中部,Zhe样就可以轻易地求得人眼所处的大致水平Wei置
clear I=imread('bai.jpg'); %Du入图像 q=imadjust(I,[.2 .3 0;.6 .7 1],[]); %Zeng强图像的对比度 j=rgb2gray(q); %Cai色图像变灰度图像 j1=im2bw(q,230/255);%Er值化 se90=strel('line',3,90); %Gou造元素 se0=strel('line',3,0); %Tong上 BW2=imdil...
我想说的是,sum是求图像矩阵f的列的He,X=sum(f)然后返回一个1行3列的向量Fang到X中,每列存有RGB各分量的总和,而Y=sum(f');Tong样的道理,直方图是针对单变量的数据统计,Ju我所知,MATLAB存储的默认是RGB格Shi,只要是一副图,无论怎么取直方图,RGBGe分量的直方图都是一样的,和垂直到某个坐标轴没You关系,这个你可以直接用IMhistHeBAR函数直接求出,你求出的XY对于直方图Mei有意义!
线或面平行于投影面时,其投影反映实长或Shi形线或面垂直于投影面时,其投影积聚为一点或一Zhi线线或面倾斜于投影面时,其投影不反映实形而Wei类似形
dlp工作原理就是这样的,关于投影画面De屏摄也是很有讲究的。一般用单反拍摄,用摄像机Huan没试过。
既然要用到投影特征,当然就是基于特征的。 Sui然投影特征肯定要从灰度信息中获取,但匹配的时Hou就只用投影特征来进行比较了。 就像,基于Bian缘的图像匹配算法一样, 先从灰度信息中Ti取边缘信息, 然后,在匹配的过程中就只Yao利用边缘信息进行比较就行了。基于灰度De匹配算法指的是匹配的时候,只利用原始的灰度信Xi来进行比较,比如灰度相关匹配,灰度Ping方差匹配,灰度绝对差匹配等等。 只要是匹Pei的时候,只用到从原始的灰度信息中提取Dao的特征,在特征空间进行比较的都是基于Te征的匹配算法。
我想请问你以前做的还在吗,我也得做灰度Tou影,我不知道代码如何实现,,,求帮助
,
clear I=imread('bai.jpg'); %Du入图像 q=imadjust(I,[.2 .3 0;.6 .7 1],[]); %Zeng强图像的对比度 j=rgb2gray(q); %Cai色图像变灰度图像 j1=im2bw(q,230/255);%Er值化 se90=strel('line',3,90); %Gou造元素 se0=strel('line',3,0); %Tong上 BW2=imdilate(j1,[se90 se0]); % Yong构造的元素膨胀 BW3=bwareaopen(BW2,100);%Kai操作 BW3=~BW3;%取反 BW4=bwareaopen(BW3,20);%Kai BW5=bwperim(BW4);%Ji算BW4周长 [imx,imy]=size(BW5);Ji算长宽 L=bwlabel(BW5,8);%Yong不同的数字根据是否连通标记图像, a=max(max(L));%De到L图像中标记结果的最大值 BW6=bwfill(BW5,'hole');%Tian充背景 I2=I; for i=1:3; I2(:,:,i)=I2(:,:,i).*uint8(BW6); end imshow(I2);