当前位置:首页 > 代码 > 正文

overlap的hog的matlab代码(matlab overlap)

admin 发布:2022-12-19 19:38 184


今天给各位分享overlap的hog的matlab代码的知识,其中也会对matlab overlap进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么把matlab工具箱操作生成代码

首先,将下载的工具箱文件解压,将文件夹复制到MATLAB安装目录下toolbox文件夹下。

其次,在MATLAB命令行中输入如下命令:

cd D:\MATLAB7\toolbox\piotr_toolbox % 找到你的工具箱

addpath(genpath('D:\MATLAB7\toolbox\piotr_toolbox')) %增加路径

savepath %永久保存路径

最后,检查是否成功:

which hog %随便输入所加入工具箱中的一个m文件

D:\MATLAB7\toolbox\piotr_toolbox\channels\hog.m %得到此文件路径,即加载正确

matlab hog函数怎么用

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特征都不是对整幅图像取的,而是对图像中的一个滑动窗口取的。

matlab程序代码求指导!感激不尽

1.

find用于找出满足其条件(v(j,:)vmax)的值所在的位置

2.

这个赋值可以理解把find找出的每个位置的值都用vmax代替。

举例如下:

我写这样的代码:

clc

clear

all

close

all

v=[0.5,0.7;0.4,0.8;0.9,0.1;0.3,0.2];

vmax=0.5;

for

j=1:4

v(j,find(v(j,:)vmax))=vmax;

end

当j=1时,find(v(j,:)vmax)=2

那么v(j,find(v(j,:)vmax))就是v(1,2),然后赋值也就很明确了。

matlab 文本图像映射

I = imread('cameraman.tif');tform = maketform('affine',[1 0 0; .5 1 0; 0 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 all; close all; clc;

[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

结果

求梯度分布直方图matlab代码

function H=HOG(Im)

nwin_x=3;%set here the number of HOG windows per bound box

nwin_y=3;

B=9;%set here the number of histogram bins

[L,C]=size(Im); % L num of lines ; C num of columns

H=zeros(nwin_x*nwin_y*B,1); % column vector with zeros

m=sqrt(L/2);

if C==1 % if num of columns==1

Im=im_recover(Im,m,2*m);%verify the size of image, e.g. 25x50

L=2*m;

C=m;

end

Im=double(Im);

step_x=floor(C/(nwin_x+1));

step_y=floor(L/(nwin_y+1));

cont=0;

hx = [-1,0,1]; %水平梯度模板

hy = -hx';%垂直梯度模板

grad_xr = imfilter(double(Im),hx);%水平梯度

grad_yu = imfilter(double(Im),hy);%垂直梯度

angles=atan2(grad_yu,grad_xr);%梯度角度

magnit=((grad_yu.^2)+(grad_xr.^2)).^.5;%梯度大小

for n=0:nwin_y-1

for m=0:nwin_x-1

cont=cont+1;

angles2=angles(n*step_y+1:(n+2)*step_y,m*step_x+1:(m+2)*step_x);

magnit2=magnit(n*step_y+1:(n+2)*step_y,m*step_x+1:(m+2)*step_x);

v_angles=angles2(:);

v_magnit=magnit2(:);

K=max(size(v_angles));

%assembling the histogram with 9 bins (range of 20 degrees per bin)

bin=0;

H2=zeros(B,1);

for ang_lim=-pi+2*pi/B:2*pi/B:pi

bin=bin+1;

for k=1:K

if v_angles(k)ang_lim

v_angles(k)=100;

H2(bin)=H2(bin)+v_magnit(k);

end

end

end

H2=H2/(norm(H2)+0.01);

H((cont-1)*B+1:cont*B,1)=H2;

end

end

求解matlab代码

该问题属于线性规划最优解问题,解决的方法如下:

1、创建自定义目标函数,即

f=x1+x2+x3+x4+x5+x6

2、创建自定义约束条件函数,即

x1+x5+x6=18

2*x3+x4=18

2*x1+6*x2+3*x4+x5=26

3、使用fmincon()极值函数,求解其x1、x2、x3、x4、x5、x6

4、根据上述方法编程并运行,可以得到如下结果

关于overlap的hog的matlab代码和matlab overlap的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20908.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载