![]() |
|
منتدى البرمجة كل ما يتعلق بلغات البرمجة، فيجوال بيسيك , سي ++ , دلفي , أكسيس , جافا , هتمل... |
في حال وجود أي مواضيع أو ردود
مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة
( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
آخر المواضيع |
|
comment résoudre ce probleme dans matlab
![]() |
|
أدوات الموضوع | انواع عرض الموضوع |
![]() |
رقم المشاركة : 1 | ||||
|
![]() السلام عليكم كود:
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 كود:
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 كود:
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 merci d'avance
|
||||
![]() |
![]() |
رقم المشاركة : 2 | |||
|
![]() قيل لي أن ال mex file يمكنها أن تحل مشكل بطء تنفيذ أي برنامج في الماتلاب هل هذا صحيح؟ و إن كان كذلك كيف بإمكاني استخدامها؟ أرجو منكم يا أهل الاختصاص التكرم علي ولو بفكرة ربما تأتي بفائدة |
|||
![]() |
![]() |
رقم المشاركة : 3 | |||
|
![]() السلام عليكم
-أنا عندما جربت تنفيذ البرنامج استغرق تقريبا 4 ثواني فقط بدون أن أغير شئ، ربما عندك الجهاز ثقيل. - بالنسبة لـ mex file فهي فعلا تنقص الوقت لكن ليس بدرجة كبيرة جدا واذا أردتي استعمالها فيجب كتابة الدالة Interpolation و Auxilare بلغة c ثم تحويلها عن طريق كتابة مايلي: كود:
mex Interpolation.c mex Auxilare.c |
|||
![]() |
![]() |
رقم المشاركة : 4 | |||
|
![]() السلام عليكم |
|||
![]() |
![]() |
رقم المشاركة : 5 | |||
|
![]() vous pouvez utiliser les mex files ils minimisent considérablement le temps de calcul jusqu'à 75% notamment si ton code comporte plusieurs boucles, il est a noter que les tu peux mexer le fortron ou C.
la 2 solution est la pré-al******** de mémoire si vous utiliser des vecteurs ou des matrices.....etc |
|||
![]() |
![]() |
رقم المشاركة : 6 | |||
|
![]() السلام عليكم كود:
function k = Interpoler(I,x,y,q) [X,Y]=size(I); switch q case 1 [m,n] = size(I); x1 = round(x); x1 = max(x1,1); x1=min(x1,m); y1 = round(y); y1 = max(y1,1); y1=min(y1,n); k = I(x1,y1); case 2 n=floor(x);n=max(n,1);n=min(n,X-1); m=floor(y);m=max(m,1);m=min(m,Y-1); sigma_x=x-n; sigma_y=y-m; k=(1-sigma_x)*(1-sigma_y)*I(n,m)+sigma_x*(1-sigma_y)*I(n+1,m)+(1-sigma_x)*sigma_y*I(n,m+1)+sigma_x*sigma_y*I(n+1,m+1); otherwise disp('invalide data'); end a titre d'exemple merci d'avance |
|||
![]() |
![]() |
رقم المشاركة : 7 | |||
|
![]() عمل رائع بارك الله فيك |
|||
![]() |
![]() |
رقم المشاركة : 8 | ||||
|
![]() اقتباس:
عذرا على التاخير لانني ظننت ان الموضوع فقد اهميته شوفي les mex files ce sont des fichiers ecrits en C ou fortran avec une syntaxe légèrement différente au langage c ou fortran standard
par exemple votre fonction interpoler.c tapez la commande mex interpoler.c ,dans command window, et vous aurez une nouvelle fonction sous forme .dll (selon la version du matlab et le système d'exploitation) dans votre cas interpoler.dll il suffit d'appeler cette fonction dans le programme principal a l’égard des exemples il y en a beaucoup sur le net............ si il y a quoi que ce soit n'hésitez pas a demander |
||||
![]() |
![]() |
رقم المشاركة : 9 | |||
|
![]() où peut je trouve le fichier interpoler.c compiler j'ai fait tous ce que vous avez disez j'ai compiler mon fichier dans la commande windows et aprés ?? qu'est ce que je doit faire ?? |
|||
![]() |
![]() |
رقم المشاركة : 10 | ||||
|
![]() اقتباس:
tu dois l’écrire toi même en langage C (ce n'est pas une simple conversion de l’extension .m vers .c) .....etc
je te conseille de lire ce livre avant de commencer la programmation des mex files il s'appelle MATLAB C/C++ Book c'est un excellent ouvrage avec plusieurs exercices résolus sinon je le ferais moi même, il suffit de poser l’énoncé du problème d'une façon bien détaillée |
||||
![]() |
![]() |
رقم المشاركة : 11 | |||
|
![]() Machkour akhi fayssal barak allaho fikom wa wafakakomlima yohibo wa yarda |
|||
![]() |
![]() |
رقم المشاركة : 12 | |||
|
![]() شكرااا جزيلا اخي العزيز |
|||
![]() |
![]() |
الكلمات الدلالية (Tags) |
comment, dans, matlab, probleme, resoudre |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc