comment résoudre ce probleme dans matlab - منتديات الجلفة لكل الجزائريين و العرب

العودة   منتديات الجلفة لكل الجزائريين و العرب > منتديات التقنية > منتدى البرمجة

منتدى البرمجة كل ما يتعلق بلغات البرمجة، فيجوال بيسيك , سي ++ , دلفي , أكسيس , جافا , هتمل...

في حال وجود أي مواضيع أو ردود مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة تقرير عن مشاركة سيئة ( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .

آخر المواضيع

comment résoudre ce probleme dans matlab

 
 
أدوات الموضوع انواع عرض الموضوع
قديم 2012-05-09, 15:21   رقم المشاركة : 1
معلومات العضو
khawla MI
عضو مشارك
 
إحصائية العضو










افتراضي comment résoudre ce probleme dans matlab

السلام عليكم
encore une fois un probleme dans le temps de calcule
le programme qui va etre décrit per la suite prendre plus de 35 seconds pour s'executer je veut minimiser ce temps à 0.08 s est ce que ça est fesaible et s'il est le cas comment je peut le minimiser
voila le programme

كود:
global nx
global ny
global dx
global dy
global PD
I=imread('lena.jpg');
I=rgb2gray(I);%I est une image 
[X Y]=size(I); 
J= zeros(X,Y); %Image interpolée
dx = 26;dy = 26;
Tdx = 0:dx:X-1;Tdx = [dx , Tdx, X-1, X-1+dx];
Tdy = 0:dy:Y-1;Tdy = [dy , Tdy, Y-1, Y-1+dy];
nx = length(Tdx);ny = length(Tdy);
PD = zeros(nx*ny,2); 
k=1;
for i=1:length(Tdx)
for j=1:length(Tdy)
PD(k,1)=round(Tdx(i)); PD(k,2)=round(Tdy(j)); 
k=k+1; 
end
end
for x=1:X,
for y=1:Y,
T=Interpolation(x-1,y-1) + 1 ; 
x1 = max(round(x),1); x1=min(x1,X);
y1 = max(round(y),1); y1=min(y1,Y);
J(x,y) = I(x1,y1);
end
end
Où Interpolation est une fonction définit comme:
كود:
function Inter = Interpolation(x,y)
global nx
global ny
global dx
global dy
global PD
i = floor(x/dx)-1; j = floor(y/dy)-1; 
u=(x/dx)-floor(x/dx); v=(y/dy)-floor(y/dy);
Inter =[0,0];
for l=0:3
for m=0:3
k = (i+l+1)*nx + (j+m+2);
 
Inter = Inter + Auxiliaire(u,l)*Auxiliaire(v,m).*PD(k,:);
end
end
de meme la fonction Auxiliaire est definit par:
كود:
function A = Auxiliare(x,i)
switch i
case 0
A=((1-x).*(1-x).*(1-x))/6;
case 1
A=(3*x.*x.*x - 6*x.*x + 4)/6;
case 2
A=(-3*x.*x.*x + 3*x.*x + 3*x +1)/6;
case 3
A=x.*x.*x/6;
otherwise
disp('entré non valide.')
end
la fonction qui prend beaucoup de temps est la fonction Interpolation je veut la minimiser parce que je doit faire appelle de cette fonction dans des autres fonctions et pour un nombre important de fois et ça ne m'aide pas avec un temps de calcule égale à 30 seconds est ce que vous pouver m'aider

merci d'avance








 

الصور المرفقة
نوع الملف: jpg lena.jpg‏ (9.6 كيلوبايت, المشاهدات 11)

رد مع اقتباس
 

الكلمات الدلالية (Tags)
comment, dans, matlab, probleme, resoudre


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

الساعة الآن 06:18

المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية


2006-2024 © www.djelfa.info جميع الحقوق محفوظة - الجلفة إنفو (خ. ب. س)

Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc