سلام. پروژه ای دارم با موضوع : روش های پیاده سازی الگوریتم های پردازش تصویر لطفا کمکم کنید, پیاده سازیه الگوریتم یعنی چی؟
اطلاعیه
Collapse
No announcement yet.
پروژه پیاده سازیه الگوریتم
Collapse
X
-
پاسخ : پروژه پیاده سازیه الگوریتم
معمولاً وقتی منظور شبیه سازی باشه میگن شبیه سازی، پیاده سازی فکر کنم بیشتر مربوط به کارای سخت افزاری باشه.
متلب بیشتر الگوریتم های معروف پردازش تصویر رو تو تولباکس Image Processing داره، مثلاً برای Histogram Equalization با فقط یک دستور میشه این کارو انجام داد.
بیشتر موضوع پروژه رو باز کن، دقیقاً میخوای چه کار کنی؟لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
تشخیص لبه که آسونه
دستور متلب edge
مقایسه روشهای تشخیص لبه:
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=we b&cd=14&ved=0CI0BEBYwDQ&url=http%3A%2F %2Fwww.m-hikari.com%2Fams%2Fams-password-2008%2Fams-password29-32-2008%2FnadernejadAMS29-32-2008.pdf&ei=Sv-UT9i5Lcbs8QPNrIDtCg&usg=AFQjCNFIeXMEC6DI0F6gk8 aAOL1nONjH6A&sig2=yDn7KQU5Yz1nO8ut1bYdOQ
برای کد متلب هم یه سرچ تو نت بزن.
یه نمونه (Canny):
http://robotics.eecs.berkeley.edu/~sastry/ee20/cacode.htmlلطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
این برنامه جواب هم داده:
%%%%%%%%%%%%% The main.m file %%%%%%%%%%%%%%%
function edge_example
clear;clc;close all
% The algorithm parameters:
% 1. Parameters of edge detecting filters:
% X-axis direction filter:
Nx1=10;Sigmax1=1;Nx2=10;Sigmax2=1;Theta1=pi/2;
% Y-axis direction filter:
Ny1=10;Sigmay1=1;Ny2=10;Sigmay2=1;Theta2=0;
% 2. The thresholding parameter alfa:
alfa=0.1;
% Get the initial image lena.gif
% [x,map]=gifread('lena.gif'
% w=ind2gray(x,map);
w = imread('lena.jpg'
% w = rgb2gray(x);
figure(1);colormap(gray);
subplot(3,2,1);
% imagesc(w,200);
imagesc(w)
% imshow(w)
title('Image: lena.gif'
% X-axis direction edge detection
subplot(3,2,2);
filterx=d2dgauss(Nx1,Sigmax1,Nx2,Sigmax2,Theta1);
Ix= conv2(w,filterx,'same'
imagesc(Ix);
title('Ix'
% Y-axis direction edge detection
subplot(3,2,3)
filtery=d2dgauss(Ny1,Sigmay1,Ny2,Sigmay2,Theta2);
Iy=conv2(w,filtery,'same'
imagesc(Iy);
title('Iy'
% Norm of the gradient (Combining the X and Y directional derivatives)
subplot(3,2,4);
NVI=sqrt(Ix.*Ix+Iy.*Iy);
imagesc(NVI);
title('Norm of Gradient'
% Thresholding
I_max=max(max(NVI));
I_min=min(min(NVI));
level=alfa*(I_max-I_min)+I_min;
subplot(3,2,5);
Ibw=max(NVI,level.*ones(size(NVI)));
imagesc(Ibw);
title('After Thresholding'
% Thinning (Using interpolation to find the pixels where the norms of
% gradient are local maximum.)
subplot(3,2,6);
[n,m]=size(Ibw);
for i=2:n-1,
for j=2:m-1,
if Ibw(i,j) > level,
X=[-1,0,+1;-1,0,+1;-1,0,+1];
Y=[-1,-1,-1;0,0,0;+1,+1,+1];
Z=[Ibw(i-1,j-1),Ibw(i-1,j),Ibw(i-1,j+1);
Ibw(i,j-1),Ibw(i,j),Ibw(i,j+1);
Ibw(i+1,j-1),Ibw(i+1,j),Ibw(i+1,j+1)];
XI=[Ix(i,j)/NVI(i,j), -Ix(i,j)/NVI(i,j)];
YI=[Iy(i,j)/NVI(i,j), -Iy(i,j)/NVI(i,j)];
ZI=interp2(X,Y,Z,XI,YI);
if Ibw(i,j) >= ZI(1) & Ibw(i,j) >= ZI(2)
I_temp(i,j)=I_max;
else
I_temp(i,j)=I_min;
end
else
I_temp(i,j)=I_min;
end
end
end
imagesc(I_temp);
title('After Thinning'
colormap(gray);
%%%%%%%%%%%%%% End of the main.m file %%%%%%%%%%%%%%%
%%%%%%% The functions used in the main.m file %%%%%%%
% Function "d2dgauss.m":
% This function returns a 2D edge detector (first order derivative
% of 2D Gaussian function) with size n1*n2; theta is the angle that
% the detector rotated counter clockwise; and sigma1 and sigma2 are the
% standard deviation of the gaussian functions.
function h = d2dgauss(n1,sigma1,n2,sigma2,theta)
r=[cos(theta) -sin(theta);
sin(theta) cos(theta)];
for i = 1 : n2
for j = 1 : n1
u = r * [j-(n1+1)/2 i-(n2+1)/2]';
h(i,j) = gauss(u(1),sigma1)*dgauss(u(2),sigma2);
end
end
h = h / sqrt(sum(sum(abs(h).*abs(h))));
% Function "gauss.m":
function y = gauss(x,std)
y = exp(-x^2/(2*std^2)) / (std*sqrt(2*pi));
% Function "dgauss.m"(first order derivative of gauss function):
function y = dgauss(x,std)
y = -x * gauss(x,std) / std^2;
%%%%%%%%%%%%%% end of the functions %%%%%%%%%%%%%
این هم نتیجه:
لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
من واقعا از شما ممنونم ، میشه بگید این برنامه کدوم روشه؟؟ استاد پروژه ام برنامه ها رو جدا میخواد! هر کدومم کامل، باید سه تا از پنج روشه کنی ، پرویت،روبرت،لاپلاسین،سوبل رو برای استاد اجرا کنم، دوست عزیز شما با جواب دادنتون من رو ترغیب کردید که پروو بشم وچندتا سوال دیگه هم بپرسم!!!! :redface: این دو برنامه به چه معناهستن؟ grad_dir و grad_mag
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
این روش canny هست برنامه اش همون برنامه لینکه که گذاشتم خودم ننوشتم فقط اصلاحش کردم که اجرا بشه.
grad_dir و grad_mag کجاست؟
احتمالاً منظور گرادیان باشه، dir همون direction یا جهت و mag همون magnitude یا اندازه است.لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
A=imread('sample.jpg'
2-B=rgb2gray(A);
3-C=double(B);
4-for i=1:size(C,1)-2
5-for j=1:size(C,2)-2
6- %Sobel mask for x-direction:
7- Gx=((2*C(i+2,j+1)+C(i+2,j)+C(i+2,j+2))-(2*C(i,j+1)+C(i,j)+C(i,j+2)));
8- %Sobel mask for y-direction:
9- Gy=((2*C(i+1,j+2)+C(i,j+2)+C(i+2,j+2))-(2*C(i+1,j)+C(i,j)+C(i+2,j)));
10- %The gradient of the image
11- %B(i,j)=abs(Gx)+abs(Gy);
12- B(i,j)=sqrt(Gx.^2+Gy.^2);
13- end
14-end
15-figure,imshow(B); title('Sobel gradient'
16-%Define a threshold value
17-Thresh=100;
18-B=max(B,Thresh);
19-B(B==round(Thresh))=0;
20-B=uint8(B);
21-figure, imshow(~B);title('Edge detected Image'
این روشه سوبله، خط 18 یعنی چی؟؟
دیدگاه
-
پاسخ : پروژه پیاده سازیه الگوریتم
اپراتور سوبل به شکل زیر است:
پس اولا خط 7 و 9 جای x و y باید عوض بشه.
حلقه ای که از خط 4 شروع میشه در واقع همین پنجره 3در3 رو روی کل تصویر حرکت میده و مقدار نقطه مرکزی پنجره رو محاسبه میکنه. چون سایز پنجره 3در3 هست باید 2- بشه که از حد ماتریس بیرون نزنه. سایز یعنی اندازه دیگه، اندازه ماتریس: تعداد سطر و ستون.
خطوط 11 و 12 فقط یکیشون باید باشه، فرقی نمیکنه کدوم.
خطوط 18 و 19 در واقع مقادیر زیر مقدار آستانه رو صفر میکنن و آستانه گیری میکنن اگه به جای این دو خط این طوری مینوشت بهتر بود:
B(B<=Tresh)=0;
لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"
دیدگاه
دیدگاه