【问题标题】:Dictionary simulation in Octave/Matlab for Sparse recovery用于稀疏恢复的 Octave/Matlab 中的字典模拟
【发布时间】:2019-03-22 07:22:31
【问题描述】:

我想使用稀疏恢复对 RGB 图像进行分类,现在我想创建一些虚拟随机样本。因此,我找到了以下代码,由于我对八度音阶非常陌生,所以我无法正确理解代码。
如果有人可以在重塑图像后对这些部分发出命令,那就太好了。

代码如下:

A = imread('demo2.jpg');
B = (A(301:800, 1:400,:));

figure(1)
image(B); axis on; axis equal

%3dim plot 
D1 = B(1:50,1:50,:);
D2 = B(1:50,151:200,:);
D3 = B(151:200,351:400,:);
figure(2); %Pflanze
image(D1); axis on; axis equal 
figure(3); %Haar
image(D2); axis off; axis equal
figure(4); %Haut
image(D3); axis off; axis equal

%sampling at random N per class
N = 50;
idx2d_D1 = ceil(rand(N,2)*50);
idx2d_D2 = ceil(rand(N,2)*50);
idx2d_D3 = ceil(rand(N,2)*50);

test_vec_D1 = zeros(N,3);
for k=1:N
 test_vec_D1(k,1) = D1(idx2d_D1(k,1),idx2d_D1(k,2),1);
 test_vec_D1(k,2) = D1(idx2d_D1(k,1),idx2d_D1(k,2),2);
 test_vec_D1(k,3) = D1(idx2d_D1(k,1),idx2d_D1(k,2),3);
 end
test_vec_D2 = zeros(N,3);
for k=1:N
test_vec_D2(k,1) = D2(idx2d_D2(k,1),idx2d_D2(k,2),1);
test_vec_D2(k,2) = D2(idx2d_D2(k,1),idx2d_D2(k,2),2);
test_vec_D2(k,3) = D2(idx2d_D2(k,1),idx2d_D2(k,2),3);
end
test_vec_D3 = zeros(N,3);
for k=1:N
test_vec_D3(k,1) = D3(idx2d_D3(k,1),idx2d_D3(k,2),1);
test_vec_D3(k,2) = D3(idx2d_D3(k,1),idx2d_D3(k,2),2);
test_vec_D3(k,3) = D3(idx2d_D3(k,1),idx2d_D3(k,2),3);
end

 figure(5)
 %pointset
 X1 = [test_vec_D1'];
 X2 = [test_vec_D2'];
 X3 = [test_vec_D3'];

 plot3(X1(1,:), X1(2,:), X1(3,:),'bo'); axis on; grid on; hold on
 plot3(X2(1,:), X2(2,:), X2(3,:),'go'); 
 plot3(X3(1,:), X3(2,:), X3(3,:),'ro'); hold off;
 title('blau-Pflanze, grün-Haar, rot-Haut')

【问题讨论】:

    标签: matlab dataset classification octave


    【解决方案1】:

    我画了一个流程,终于明白这段代码是怎么工作的了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 2011-07-09
      • 2017-07-02
      • 2012-04-02
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多