Info

This question is closed. Reopen it to edit or answer.

Covert Code MatLab to code visual basic 2010

1 view (last 30 days)
nguyen
nguyen on 12 Jul 2012
Closed: MATLAB Answer Bot on 20 Aug 2021
function tile=phathien_DH(image_name)
%image_name=input('Ten anh:','s');
I=double(imread(image_name));
%I=S(1:10,1:10);
[m,n]=size(I);
D=zeros(m,n-1);
for i=1:m
for j=1:n-1
D(i,j)=I(i,j)-I(i,j+1);
end
end
h1=zeros(1,255);
h2=zeros(1,255);
for i=1:m
for j=1:n-1
if D(i,j)>=0
h1(D(i,j)+1)=h1(D(i,j)+1)+1;
else
h2(abs(D(i,j))+1)=h2(abs(D(i,j))+1)+1;
end
end
end
%figure,bar(h1);
%figure,bar(h2);
Io=floor(I/2)*2;% lam cho LSB bang 0
% tinh lai D va g nhu tren
g1=zeros(1,255);
g2=zeros(1,255);
for i=1:m
for j=1:n-1
DD(i,j)=Io(i,j)-Io(i,j+1);
end
end
for i=1:m
for j=1:n-1
if DD(i,j)>=0
g1(DD(i,j)+1)=g1(DD(i,j)+1)+1;
else
g2(abs(DD(i,j))+1)=g2(abs(DD(i,j))+1)+1;
end
end
end
%figure,bar(g1);
%figure,bar(g2);
a0_1=(g1(1)-h1(1))/(2*g1(1))
a0__1=a0_1
a0_0=1-2*a0_1
a2_2=h1(3)/g1(3)
a2_1=(h1(2)-a0_1*g1(1))/g1(3)
a2_3=1-a2_2 - a2_1
a4_4=h1(5)/g1(5)
a4_3=(h1(4)- a2_3*g1(3))/g1(5)
a4_5=1-a4_3 - a4_4
a6_6=h1(7)/g1(7)
a6_5=(h1(6)-a4_5*g1(5))/g1(7)
a6_7=1 -a6_6 -a6_5
anpha0=a2_1/a0_1
anpha1=a4_3/a2_3
anpha2=a6_5/a4_5
beta0=a2_3/a0__1
beta1=a4_5/a2_1
beta2=a6_7/a4_3
gama0=g1(1)/g1(3)
gama1=g1(3)/g1(5)
gama2=g1(5)/g1(7)
d1=1-gama0
d2=anpha0-gama0
d3=beta0-gama0
d4=1-gama1
d5=anpha1-gama1
d6=beta1-gama1
d7=1-gama2
d8=anpha2-gama2
d9=beta2-gama2
a=2*d1
b=d3 - 4*d1 -d2
c=2*d2
a1=2*d4
b1=d6 - 4*d4 -d5
c1=2*d5
a2=2*d7
b2=d9 - 4*d7 -d8
c2=2*d8
P=[];
dem=0
delta = b*b -4*a*c
if delta < 0
else if delta == 0
p=-b/(2*a)
% P[dem]=p;
P=[P p];
dem=dem+1
%tile=p
else
p1=(-b -sqrt(delta))/(2*a)
p2=(-b +sqrt(delta))/(2*a)
if p1<1 & p1<p2
% P[dem]=p1;
P=[P p1];
dem=dem+1
%tile=p1
else
% p[dem]=p2;
P=[P p2];
dem=dem+1
%tile=p2
end
end
end
delta1 = b1*b1 -4*a1*c1
if delta1 < 0
else if delta1 == 0
p3=-b1/(2*a1)
% P[dem]=p3;
P=[P p3];
%tile=p3;
dem=dem+1
else
p4=(-b1 -sqrt(delta1))/(2*a1)
p5=(-b1 +sqrt(delta1))/(2*a1)
if p4<1 & p4<p5
% P[dem]=p4;
P=[P p4];
% tile=p4;
dem=dem+1
else
% p[dem]=p5;
P=[P p5];
% tile=p5;
dem=dem+1
end
end
end
delta2 = b2*b2 -4*a2*c2
if delta2 < 0
else if delta2 == 0
p6=-b2/(2*a2);
P=[P p6];
dem=dem+1
%tile=p6
else
p7=(-b2 -sqrt(delta2))/(2*a2)
p8=(-b2 +sqrt(delta2))/(2*a2)
if p7<1 & p7>p8
P=[P p7];
dem=dem+1
% tile=p7
else
P=[P p8];
dem=dem+1
% tile=p8
end
end
end
P
tong=0
for i=1:dem
tong=tong+P(i)
end
tile=tong/dem
tile=floor(tile*100)
  1 Comment
Walter Roberson
Walter Roberson on 12 Jul 2012
Converting the calculations would probably mostly be tedious. Converting the imread() is possibly more difficult.
Mathworks does not currently offer any product for automatically translating MATLAB into VBA. It does offer a product for translating MATLAB code into a series of data files and libraries that could be called from VBA.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!