سئوالات و مشکلات در متلب (MATLAB)

nanosi

عضو جدید
میشه بگی دقیقاً میخوای چیکار کنی؟ میخوای عکس از اسکرین بگیری و در متلب نشون بدی؟

سلام و خسته نباشيد
ميخوام با دستورات مطلب از صفحه نمايش عكس بگيرم و در يك متغير قرار بدم و از ماتريس اون كه در متغير هست استفاده كنم و پردازشش كنم.

الان من در يك ام فايل، توسط دستورات كمكي جاوا در مطلب بطور اتوماتيك از صفحهنمايش عكسو ميگيرم و در يك مكان ذخيره ميكنم و در ادامه اون عكسو از اون مكان ميخونم و در يك متغير قرار ميدم و اون متغير را استفاده ميكنم. اما اين روش كمي پردازشمو كند كرده چونكه بايد عكس را اول ذخيره كنم و سپس بخونمش.
بطور خلاصه من ميخوام با دستورات متلب از صفحه نمايش عكس بگيرم و در يك متغير قرار بدم. مانند كاري كه دوستم با API در ويژوال سي پلاس پلاس انجام داد
 

nanosi

عضو جدید
با دوربین .....

با دوربين عكس گرفتن يعني صورت مسئله را پاك كردن و دو سه دور لقمه را دور سر چرخوندن، آخرشم غذا سرد ميشه از گلو پايين نميره:D
با چهار خط با دستورات كمكي مطلب عكسو گرفتم و ذخيره كردم و خوندم. منظور از دستورات كمكي جاوا در مطلبه. اما من اينم پيچوندن ميدونم چونكه ميدونم راهي براي اينكار بطور مستقيم در مطلب وجود داره
 

nanosi

عضو جدید
بعد سه رو انتظار خودم جواب خودمو ميدم دلم نشكنه:
set(0,'PointerLocation',[100,100])
get(0,'PointerLocation')
دستور اول نشانگر ماوس را به مكان دلخواه ميبره
دستور دوم مختصات كنوني را برميگردونه
حالا كسي ميدونه چطور ميشه كليك كنم؟ لطفا راهنمايي كنيد
يعني بدون كمك ماوس با دستورات مطلب كليك كنم
 

بهار امیدوار

عضو جدید
سلام باید ضربه بزنی
یعنی دستورذی بدی که 2 بار سرجای خودش حرکت کنه
در واقع بره برگرده اما با مسافت صفر
 

mazy_taj

عضو جدید
کاربر ممتاز
[h=2]http://www.www.www.iran-eng.ir/images/icons/icon1.png چطور ميتونم با متلب از صفحه كامپيوتر عكس بگيرم؟[/h]
سلام دوستان
چطور ميتونم با مطلب از صفحه كامپيوتر عكس بگيرم؟ و بخونمش؟​


سلام من پردازش تصویر کار نکردم ولی این لینک احتمالا کمکتون می کنه، تصویر می گیره می گذاره توی یه متغییر، یه ام فایل داره به اسمه screencapture که از خوده سایته متلب قابله دانلوده. گفته می تونه تصویر رو از هرجای صفحه که بخواید بگیره به شرطی که handle هارو بهش بدید.
 
آخرین ویرایش:

mazy_taj

عضو جدید
کاربر ممتاز
ایندفه زود جوابتو می دم که دلت نشکنه :D

باید از کلاس های جاوا استفاده کنی، اینم دستوراتش :
PHP:
import java.awt.Robot;
import java.awt.event.*;
mouse = Robot;
mouse.mousePress(InputEvent.BUTTON1_MASK);
mouse.mouseRelease(InputEvent.BUTTON1_MASK);
اونا button هارو بکنی ۳ رایت کلیک می کنه، اینجوری که ۱ هستن همون کلیکه.
 
آخرین ویرایش:

nanosi

عضو جدید
با دستورات زير عكس از كل صفحه بجز ماوس ميگيرم بعد در دايركتوري ام فايل ذخيره ميكنم. توضيح دستورات در خودش آمده. حلقه وايل برا اينه كه هر چند ثانيه يكبار يه عكس بگيره و با نام جديد ذخيره كنه:

i = 1;
while true
robo = java.awt.Robot;
t = java.awt.Toolkit.getDefaultToolkit();

%# Set the capture area as the size for the screen
rectangle = java.awt.Rectangle(t.getScreenSize());

%# Get the capture
image = robo.createScreenCapture(rectangle);

%# Save it to file
filehandle = java.io.File(sprintf('capture%d.jpg', i));
javax.imageio.ImageIO.write(image,'jpg',filehandle);

%pause(1) %# Wait for a moment
i = i + 1;
end
 

nanosi

عضو جدید
سلام من پردازش تصویر کار نکردم ولی این لینک احتمالا کمکتون می کنه، تصویر می گیره می گذاره توی یه متغییر، یه ام فایل داره به اسمه screencapture که از خوده سایته متلب قابله دانلوده. گفته می تونه تصویر رو از هرجای صفحه که بخواید بگیره به شرطی که handle هارو بهش بدید.

اين سايت كه معرفي كرديد يه لينك ميده تا ام فايل را پيدا كنيم اما صفحش باز نميشه و پيغام زير را ميده. ميدونيد اين پيغام واسه چيه؟ آيا واسه تحريمه؟
[h=1]Access Denied[/h] You don't have permission to access "http://www.mathworks.com/matlabcentral/fileexchange/24323" on this server. Reference #18.dfe90cc3.1377513596.6ca959b
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
اين سايت كه معرفي كرديد يه لينك ميده تا ام فايل را پيدا كنيم اما صفحش باز نميشه و پيغام زير را ميده. ميدونيد اين پيغام واسه چيه؟ آيا واسه تحريمه؟
Access Denied

You don't have permission to access "http://www.mathworks.com/matlabcentral/fileexchange/24323" on this server. Reference #18.dfe90cc3.1377513596.6ca959b

سایت Mathwork رنج آی پی ایران رو مسدود کرده، با فیلتر شکن یا پروکسی بازش کنید :gol:
 

mazy_taj

عضو جدید
کاربر ممتاز
اين سايت كه معرفي كرديد يه لينك ميده تا ام فايل را پيدا كنيم اما صفحش باز نميشه و پيغام زير را ميده. ميدونيد اين پيغام واسه چيه؟ آيا واسه تحريمه؟
Access Denied

You don't have permission to access "http://www.mathworks.com/matlabcentral/fileexchange/24323" on this server. Reference #18.dfe90cc3.1377513596.6ca959b

بله همونطور که نگین خانم گفت، سایت mathworks خیلی وقته به خاطر تحریم با آی پی های ایران باز نمی شه ... با فیلتر شکن باید بری ... اگه نشد من ام فایلشو گرفتم یه ایمیل بدی می فرستم ...

پی نوشت: توی پست پایین m فایل رو آپ کردم لینکش رو گذاشتم.
 
آخرین ویرایش:

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
بله همونطور که نگین خانم گفت، سایت mathworks خیلی وقته به خاطر تحریم با آی پی های ایران باز نمی شه ... با فیلتر شکن باید بری ... اگه نشد من ام فایلشو گرفتم یه ایمیل بدی می فرستم ...

m file رو میشه اینجا بذارید؟
 

yas91

عضو جدید
برش تصویر

برش تصویر

با سلام. چطوری میشه مختصات قسمتی از تصویر رو بدست آورد و سپس با دستور imcrop چطوری برش زد؟ ممنون
 

nanosi

عضو جدید
يه جواب درست و درموني برا سوال خودم يافتم كه گفتنش خالي از لطف نيست

تابع function screencapture را در زير گذاشتم تا دانلود كنيد. اين تابع آپشن هاي زيادي داره . مثلا ميشه باهاش از كل يا قسمتي از يك فيگور، هندل، فريم، gui، دسكتاپ و .... عكس گرفت. ميشه فرمت خروجي را در قالب متغير مطلب يا در قالب فايل جاوا دريافت كرد. ميشه مستقيم عكس را ذخيره كرد و خيلي آپشن هاي ديگه. من يكي ا عمومي ترين كاري كه ممكنه نياز بشه را با دستور زير بهتون معرفي ميكنم. تماميه آپشنهاي اين دستور بصورت كامنت در ابتداي متن ام فايل فانكشن توضيح داده شده.
imageData = screencapture(0, [20,30,250,550]); % capture a desktop region
دستور بالا بخشي از دستكتاپ را عكس ميگيره و درون متغير imageData قرار ميده. با دستور زير ميتونيد اون عكسو ببينيد:
(imshow(imageData
تاكيد ميكنم كه بايد تابع و ام فايل دستورات شما در يك دايركتوري (مسير) باشند.
 

پیوست ها

  • screencapture.rar
    40 کیلوبایت · بازدیدها: 0

nanosi

عضو جدید
نميدونم لينك شما با من يكيه يا نه. من چند روز نيومدم اينجا حالا جواب گذاشتم. به هر حال ممنون
 

mazy_taj

عضو جدید
کاربر ممتاز
يه جواب درست و درموني برا سوال خودم يافتم كه گفتنش خالي از لطف نيست

تابع function screencapture را در زير گذاشتم تا دانلود كنيد. اين تابع آپشن هاي زيادي داره . مثلا ميشه باهاش از كل يا قسمتي از يك فيگور، هندل، فريم، gui، دسكتاپ و .... عكس گرفت. ميشه فرمت خروجي را در قالب متغير مطلب يا در قالب فايل جاوا دريافت كرد. ميشه مستقيم عكس را ذخيره كرد و خيلي آپشن هاي ديگه. من يكي ا عمومي ترين كاري كه ممكنه نياز بشه را با دستور زير بهتون معرفي ميكنم. تماميه آپشنهاي اين دستور بصورت كامنت در ابتداي متن ام فايل فانكشن توضيح داده شده.
imageData = screencapture(0, [20,30,250,550]); % capture a desktop region
دستور بالا بخشي از دستكتاپ را عكس ميگيره و درون متغير imageData قرار ميده. با دستور زير ميتونيد اون عكسو ببينيد:
(imshow(imageData
تاكيد ميكنم كه بايد تابع و ام فايل دستورات شما در يك دايركتوري (مسير) باشند.


نميدونم لينك شما با من يكيه يا نه. من چند روز نيومدم اينجا حالا جواب گذاشتم. به هر حال ممنون

اون لینکی که گذاشتم همین تابع screencapture هست که شما هم بهش رسیدید ،;) من از سایت Mathworks دانلود کردم ،تابعه به درد بخوریه

شما زحمت ميكشيد به اون سوالم هم جواب بديد.
بدون ماوس ميخوام كليك كنم با دستورات مطلب.
ف ي ل ت ش كن هم ندارم. راه حلشم در استفاده از دستورات كمكي جاوا در مطلبه. تقريبا لينكشم دارم ولي نميتونم به دليل تحريم وارد بشم.
عبارت mouse simulation matlab را در گوگل سرچ كنيم ميشه نتيجه اول تا سوم. همش يكيه

دستوراتشو همونجا نوشتم براتون. خودم امتحان کردم کار می کنه.

خيلي خيلي ممنون

خواهش می کنم:gol:
 
آخرین ویرایش:

anishtain_bahosh

عضو جدید
سلام- دوستان عزیز-ی سوال دارم-در متلب بخوام این فرمولformula.png رو بنویسم چطوری میشه؟ ممتون میشم راهنمایی کنید
این کد ارور میده نمی دونم چرا
syms x
int(cos(x).*cos(x).*tan(x/2),o,53.13.*pi./180)
حتی با این دستور هم اجرا نشد
syms x
quad(vectorize(cos(x)*cos(x)*tan(x/2),x,o,53.13*pi/180))
 
آخرین ویرایش:

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام- دوستان عزیز-ی سوال دارم-در متلب بخوام این فرمولمشاهده پیوست 168349 رو بنویسم چطوری میشه؟ ممتون میشم راهنمایی کنید
این کد ارور میده نمی دونم چرا
syms x
int(cos(x).*cos(x).*tan(x/2),o,53.13.*pi./180)
حتی با این دستور هم اجرا نشد
syms x
quad(vectorize(cos(x)*cos(x)*tan(x/2),x,o,53.13*pi/180))

سلام
فكر كنم منظورتون اين باشه:
کد:
 int(cos(x).*cos(x).*tan(x/2),x,0,53.13*pi/180)
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام ممنون از وقتی که میذارید -آره منظورم همینه- اما جوابی که میده عدد در نمیاد چرا؟

از دستور subs استفاده كنيد. به اين صورت:
کد:
subs(a,'x')

کدها رو چجوری مث شما میشه نوشت در پست ها؟ که بهم نریزه ترتیبشون؟:redface:

موقع پاسخگويي وارد صفحه پيشرفته بشيد. تگ كد رو انتخاب كنيد (#)
 

anishtain_bahosh

عضو جدید
ی سوال دیگه در متلب اینکه دو تا نمودار رو با hold on در یک شکل رسم کنم و اینکه رنگ سبز و قرمز داشته باشند رو بلدم اما اینکه هر کدوم از نمودار ها اسمشون در شکل معلوم باشه دستورش رو میشه راهنمایی کنید؟
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
ی سوال دیگه در متلب اینکه دو تا نمودار رو با hold on در یک شکل رسم کنم و اینکه رنگ سبز و قرمز داشته باشند رو بلدم اما اینکه هر کدوم از نمودار ها اسمشون در شکل معلوم باشه دستورش رو میشه راهنمایی کنید؟

اين رو هم اضافه كنم كه دستور hold off برعكس hold on عمل ميكنه. شايد جايي لازمتون بشه
براي اسم نمودار از اين دستور بعد از هر plot استفاده كنيد:
کد:
titile('this is a title for plot')
 

anishtain_bahosh

عضو جدید
اين رو هم اضافه كنم كه دستور hold off برعكس hold on عمل ميكنه. شايد جايي لازمتون بشه
براي اسم نمودار از اين دستور بعد از هر plot استفاده كنيد:
کد:
titile('this is a title for plot')

مرسی اما این دستور نامگذاری کل شکله من منظورم تک تک نموار هاست مثلا در این شکل20.jpg اسم برای نموارهای قرمز و زرد و ... تک تک در بالای هر نمودار بذارم
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
مرسی اما این دستور نامگذاری کل شکله من منظورم تک تک نموار هاست مثلا در این شکلمشاهده پیوست 168518 اسم برای نموارهای قرمز و زرد و ... تک تک در بالای هر نمودار بذارم

نميدونم منظورتون دقيقا چيه ولي براي محور ها اگه بخواين اسم بذارين از اين دستور استفاده كنيد
کد:
xlabel('label for x')
ylabel('label for y')

و يك دستور ديگه هم داريم كه ليست مشخصات هر نمودار رو نشون ميده
کد:
legend('legend for all lines')
 

Similar threads

بالا