matlab hog函数怎么用

matlab hog函数怎么用,第1张

1.对原图像gamma校正,img=sqrt(img)

2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率。

3.将图像每16*16(取其他也可以)个像素分到一个cell中。对于256*256的lena来说,就分成了16*16个cell了。

4.对于每个cell求其梯度方向直方图。通常取9(取其他也可以)个方向(特征),也就是每360/9=40度分到一个方向,方向大小按像素边缘强度加权。最后归一化直方图。

5.每2*2(取其他也可以)个cell合成一个block,所以这里就有(16-1)*(16-1)=225个block。

6.所以每个block中都有2*2*9个特征,一共有225个block,所以总的特征有225*36个。

当然一般HOG特征都不是对整幅图像取的,而是对图像中的一个滑动窗口取的。

I = imread('cameraman.tif')tform = maketform('affine',[1 0 0.5 1 00 0 1])J = imtransform(I,tform)imshow(I), figure, imshow(J)

追问: 谢谢,有劳了,可是我们老师要求的是将图像映射到一个圆柱体球体上,并让圆柱体和球体旋转啊。

function kcsj3

clear,clc,clf

[x,y,z]=cylinder

ff=input('请输入要映射到圆柱体上的图片的路径(用''括住)')

I=imread(ff)

z=-z

subplot(121),warp(x,y,z,I)

grid off

axis off

[az,el]=view

view(az+180,el)

for m=1:5:360

view(az-m,10),pause(0.1)

end

%clear,clc,clf

[x,y,z]=sphere(100)

%QQ=input('请输入要映射到球体上图片的路径(用''括住)')

K=imread(ff)

z=-z

subplot(122),warp(x,y,z,K)

grid off

axis off

axis square

[az,el]=view

for n=1:5:360

view(az+n,10),pause(0.1)

end

这个程序不能让圆柱跟球体一起转

麻烦您看看应该怎么修改好么?

回答: 你的问题比较有意思,做个测试,希望有所帮助。

代码

clear allclose allclc

[x1, y1, z1] = cylinder(0.3)

file = 'lena.jpg'

I1 = imread(file)

z1 = -z1

subplot(1, 2, 1)warp(x1, y1, z1, I1)

axis off

axis equal

[x2, y2, z2] = sphere(100)

I2 = imread(file)

z2 = -z2

subplot(1, 2, 2)warp(x2, y2, z2, I2)

axis off

axis equal

[az, el] = view

for n = 1 : 5 : 360

subplot(1, 2, 1)

view(az+n, 10)

subplot(1, 2, 2)

view(az+n, 10)

pause(0.1)

end

结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11953911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存