اطلاعیه

Collapse
No announcement yet.

کمکککککک !!!!! برای برنامه نویسی با متلب

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمکککککک !!!!! برای برنامه نویسی با متلب

    یه پروژه درسی دارم !
    منتهی نمی دونم از کجا شروع کنم
    خواهشا کمک کنید !!
    یه باکس می خام طراحی کنم که روش 2 تام دکمه zoom in &zomm out باشه بعد روی عکس عملیات زوم رو انجام بده . در ضمن بشه با موس عکس ر هم حرکت داد
    به شدت منتظرم

    #2
    پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

    عنوان نا مناسب
    http://www.eca.ir/forum2/index.php?topic=10159.0

    دیدگاه


      #3
      پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

      سلام
      شما باید یک GUI طراحی کنید.
      در این GUI علاوه بر دکمه + و - و یک axes احتمالا به یک Edit Box برای ورود آدرس تصویر و یک دکمه Browse برای انتخاب آدرس تصویر هم احتیاج دارید.
      در اجرای Zoom in میتونید از دستور getrect استفاده کنید. این دستور مختصات مستطیلی رو که کاربر با موس برای Zoom کردن انتخاب کرده، به شما میده.

      دیدگاه


        #4
        پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

        1- خیلی ممنون از کمکتون
        2- ممکنه در مورد دستور getrect یه مقدار بیشتر توضیح بدین ؟
        3- در مورد ساخت دکمه browse یعنی کد ساختش یه مقدار توضیح بدین
        بازم ممنون

        دیدگاه


          #5
          پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

          نوشته اصلی توسط parvaz87
          ممکنه در مورد دستور getrect یه مقدار بیشتر توضیح بدین ؟
          فرض کنید یک تصویر رو با دستور imshow رسم کرده اید. وقتی کاربر دکمه + رو میزنه، برنامه باید دستور زیر رو اجرا کنه
          rect = getrect
          این دستور به کاربر اجازه میده که یک مستطیل رو با موس انتخاب کنه و بعد مختصات مستطیل رو در متغیر rect می ریزه. این متغیر یک بردار است که عضو اول آن Xmin عضو دوم آن Ymin ، عضو سوم آن عرض مستطیل و عضو چهارم آن ارتفاع مستطیل است. یعنی شما با این دستور متوجه میشوید که کجای تصویر رو باید zoom کنید.
          نوشته اصلی توسط parvaz87
          3- در مورد ساخت دکمه browse یعنی کد ساختش یه مقدار توضیح بدین
          وقتی کاربر این دکمه browse رو فشار میده باید دستور زیر اجرا بشه:
          [filename, pathname] = uigetfile('*.tif', 'Pick an image file'
          با اینکار یک پنجره درست مثل پنجره های استاندارد ویندوز باز میشه که به کاربر اجازه میده فایل رو انتخاب کنه. با انتخاب فایل توسط کاربر، نام فایل در filename و مسیرش در pathname ریخته میشه. عبارت *.tif توسط شما تعیین میشه که کاربر نتونه هر فایلی رو انتخاب کنه
          بعدش باید با دستور imshow فایل تصویر رو نمایش بدید.
          imshow(strcat(pathname,filename))
          البته من فقط دستوراتی که فکر میکنم به دردتون میخوره میگم. اینکه دستور بهتری وجود داره یا نه باید بررسی کنید.
          حالا که فکر میکنم به نظرم به Edit box احتیاجی ندارید و دکمه Browse رو به open تغییر نام بدید و همین عملیات رو روش انجام بدید.

          احتمالا نمیدونید ولی یک topic با عنوان matlab وجود داره که اگر این سوال رو اونجا مطرح میکردید بقیه دوستان هم نظر میدادند.

          دیدگاه


            #6
            پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

            سلام
            بازم ممنون از لطفتون !
            و یه سوال دیگه
            دکمه open تقریبا با همون دستوری که گفتین درست شد اما اگه بخوام هر فایلی رو بخونه و باز کنه باید چی کار کنم ؟ منظورم هر نوع فرمت عکسه lمثل jpeg , bmp ,... ؟؟
            ممنون می شم اگه این یکی رو هم جواب بدین

            دیدگاه


              #7
              پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

              سلام،
              میتونید هر فرمتی رو که میخواهید به شکل زیر اضافه کنید:
              کد:
              [filename, pathname] = uigetfile({'*.tif';,'*.jpg';'*.bmp'},'qwer','MultiSelect','on');
              دستور imread هم بدردتون میخوره. این دستور داده های عکس رو تبدیل به یک ماتریس سه بعدی میکنه که حاوی اطلاعات مربوط به رنگ نقاط مخلتفه. دستور زیر رو تایپ کنید اطلاعات خوبی بهتون میده:
              help imread

              دیدگاه


                #8
                پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                دکمه open کامل شد .! مرسی :smile:
                اما در مورد + من دستور زیر رو نوشتم و این ارور رو داد
                rect=getrect
                h = zoom('filename,pathname&#039
                ..
                Error in ==> zoom at 232
                if nargin==2 && ...

                ??? Output argument "out" (and maybe others) not assigned during call to "C:\Program Files\MATLAB\R2009a\toolbox\matlab\graph2d\zoom.m& gt;zoom".

                Error in ==> dorost>pushbutton2_Callback at 86
                h = zoom('filename,pathname&#039

                Error in ==> gui_mainfcn at 96
                feval(varargin{:});

                Error in ==> dorost at 42
                gui_mainfcn(gui_State, varargin{:});

                Error in ==> @(hObject,eventdata)dorost('pushbutton2_Callb ack',hObject,eventdata,guidata(hObject))


                ??? Error while evaluating uicontrol Callback

                می شه در این مورد هم راهنمایی کنید ؟ و همینطور در مورد اینکه چه طور با موس عکس رو حرکت بدم؟

                دیدگاه


                  #9
                  پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                  سلام
                  راستش من تا حالا نمی دونستم که دستور zoom وجود داره!
                  حالا که اینطوره اصلا به getrect نیاز ندارین. چون zoom خودش همه کار رو انجام میده
                  1- دستور zoom رو بگذارید برای دکمه + با فشردن دکمه هر مستطیلی که با موس انتخاب کنید توسط خود matlab زوم میشه
                  2 - دستور zoom(0.5) رو بگذارید برای دکمه - با اینکار هر بار که دکمه - رو فشار بدین، تصویر دو بار کوچک میشود.
                  3- دستور pan رو بگذارید برای دکمه ای که قراره تصویر رو با موس تکون بده

                  دیدگاه


                    #10
                    پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                    میشه یه خورده بیشتر توضیح بدین
                    من هرجوری کد zoom رو می زنم ارور می ده :sad:

                    دیدگاه


                      #11
                      پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                      کد zoom به هیج ارگومانی احتیاج نداره فقط بنویسید zoom
                      همین. با اینکار نشانگر موس در تصویری که قبلا باز کرده اید به شکل ذره بین در میاد.
                      من اینو امتحان کردم هیچ error نداد
                      شما چه خطایی میگیری؟

                      دیدگاه


                        #12
                        پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                        :smile:
                        run شد !!!!
                        واقعا ممنون ............ :applause:
                        خوب شد گفتید که zoom نیاز به آرگومان نداره . داشتم برای خودم اختراعاتی می کردم ! :mrgreen:
                        بازم ممنون

                        دیدگاه


                          #13
                          پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                          ببخشید دوباره مزاحم شدم
                          من اون پروژه رو توی لپ تاپ خودم اجرا کردم و ران شد و حل و ...
                          اما توی لپ تاپ استاد کلی ارور داد بعضی از ارور ها هم مربوط به کدهایی می شد که خود مطلب نوشته و من فقط اونا رو با gui درست کرده بودم !
                          متاسفانه ارور ها رو کپی کرده بودم اما پاک شده ظاهرا !
                          شما می تونید کمکم کنید ؟!

                          دیدگاه


                            #14
                            پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                            خواهش میکنم
                            میدونید که برنامه های GUI دو تا فایل دارند : ام-فایل و یک فایل fig
                            آیا هر جفتشو کپی کردین؟
                            شاید ورژن استاد با شما یکی نبوده

                            دیدگاه


                              #15
                              پاسخ : کمکککککک !!!!! برای برنامه نویسی با متلب

                              eeee/?
                              دقت نکرده بودم
                              نه من فقط ام فایل رو کپی کرده بودم
                              یعنی دلیلش اون بود؟
                              این سری محض احتیاط لپ تاپ خودم رو هم می برم :biggrin:
                              بازم ممنون

                              دیدگاه

                              لطفا صبر کنید...
                              X