اطلاعیه

Collapse
No announcement yet.

شیفت دادن تصویر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    شیفت دادن تصویر

    سلام

    شیفت دادن تصویر در مطلب به چه صورت هست؟

    ممنونم
    فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

    #2
    پاسخ : شیفت دادن تصویر

    یه کم بیشتر توضیح بدید!
    It's nice to be important but it's important to be nice!

    از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

    دیدگاه


      #3
      پاسخ : شیفت دادن تصویر

      سلام
      فکر کنم متلب خودش دستور شیفت برای تصویر نداره. من خودم برنامه اش رو نوشتم:
      کد:
      function y=imshift(image,a,b)
      
      [R C D]=size(image);
      y=zeros(R,C,D);
      if a>=0 & b>=0
        y(1:R-a,1:C-b,:)=image(a+1:R,b+1:C,:);
      elseif a<=0 & b<=0
        y(-a+1:R,-b+1:C,:)=image(1:R+a,1:C+b,:);
      elseif a>=0 & b<=0
        y(1:R-a,-b+1:C,:)=image(a+1:R,1:C+b,:);
      elseif a<=0 & b>=0
        y(-a+1:R,1:C-b,:)=image(1:R+a,b+1:C,:);
      end
      که a و b مقدار صحیح هستند.
      اگه به شیفت به اندازه غیر صحیح (مثلا شیفت به اندازه 0.5 پیکسل) هم نیاز داشتی بگو برنامه اش رو بدم.
      مـن هیچ ندانم که مرا آن که سرشت
      از اهل بهشت کرد یا دوزخ زشت
      جامی و بتی و بربطی بر لب کشت
      اين هر سه مرا نقد و تو را نسیه بهشت

      دیدگاه


        #4
        پاسخ : شیفت دادن تصویر

        از پاسختون ممنونم.

        لطف میکنید اگر اون برنامه مربوط به شیفت به اندازه غیر صحیح رو هم بذارید.
        فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

        دیدگاه


          #5
          پاسخ : شیفت دادن تصویر

          این برنامه رو قبلا گرفته بودم میذارم برات
          upload.parsiking.com/201203/1332087570.rar
          ولی می تونی با استفاده از fft هم تصویر رو به میزان دلخواه شیفت بدی. به این صورت که از تصویر fft بگیر و بعد به اندازه دلخواه توی فازش میزان جابجایی رو جمع کن. (البته با در نظر گرفتن ملاحظاتی).
          مـن هیچ ندانم که مرا آن که سرشت
          از اهل بهشت کرد یا دوزخ زشت
          جامی و بتی و بربطی بر لب کشت
          اين هر سه مرا نقد و تو را نسیه بهشت

          دیدگاه


            #6
            پاسخ : پاسخ : شیفت دادن تصویر

            نوشته اصلی توسط (فرشته)
            لطف میکنید اگر اون برنامه مربوط به شیفت به اندازه غیر صحیح رو هم بذارید.
            منظورتون از غیر صحیح چیه؟
            جابجای براساس پیکسل هست و مثلا 1.5 پیکسل که نداریم ...
            نوشته اصلی توسط رضا شفقی
            یه کم بیشتر توضیح بدید!
            تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
            دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
            مقالات و فایل های آموزشی نرم افزار Labview
            حل مشکل درایور و راه اندازی FT232 های غیراورجینال

            دیدگاه


              #7
              پاسخ : شیفت دادن تصویر

              نوشته اصلی توسط رضا شفقی
              یه کم بیشتر توضیح بدید!
              عجب!من اصلا این پست رو تو این چند باری که به این تاپیک سر زدم ندیدم!!!!!

              هدف من اینه که ضرائب همبستگی رو بدست بیارم و برای این کار فرمولی که ازش میخوام استفاده کنم نیاز به شیفت تصویر داره یعنی تصویر I رو هر بار به میزان a شیفت بدیم و تصویر شیفت یافته رو در تصویر اصلی ضرب کنم.
              فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

              دیدگاه


                #8
                پاسخ : شیفت دادن تصویر

                منظورتون کورولیشن هست؟ خوب متلب فکر کنم داره.
                It's nice to be important but it's important to be nice!

                از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                دیدگاه


                  #9
                  پاسخ : شیفت دادن تصویر

                  نوشته اصلی توسط رضا شفقی
                  منظورتون کورولیشن هست؟ خوب متلب فکر کنم داره.
                  اره اتو کوریلیشن رو میخوام...متلب ضریبش رو بدست میاره اما از این روش بعد از محاسبه ضرائب باید تابعش رو بدست بیارم والزام استفاده از فرمول وجود داره!
                  فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

                  دیدگاه


                    #10
                    پاسخ : پاسخ : شیفت دادن تصویر

                    نوشته اصلی توسط محمد م
                    منظورتون از غیر صحیح چیه؟
                    جابجای براساس پیکسل هست و مثلا 1.5 پیکسل که نداریم ...
                    چرا. میشه به اندازه 1.5 پیکسل هم تصویر با به طور کلی سیگنال رو جابجا کرد. در واقع این نوعی درونیابیه. مثلا برای 0.5 پیکسل می تونی با میانگین گیری پیکسل مابین پیکسل n و n+1 رو پیدا کنی.
                    برای این کار هم میشه از درونیابی استفاده کرد و هم از روابطی مثل fft. همونطور که می دونی دو تا سیگنال که نسبت به هم شیفت دارند، در فاز fft میزان جابجایی ظاهر میشه. بنابراین برای شیفت دادن کافیه فاز fft تصویر رو تغییر بدی. بعد دوباره ifft بگیری.
                    مـن هیچ ندانم که مرا آن که سرشت
                    از اهل بهشت کرد یا دوزخ زشت
                    جامی و بتی و بربطی بر لب کشت
                    اين هر سه مرا نقد و تو را نسیه بهشت

                    دیدگاه


                      #11
                      پاسخ : پاسخ : شیفت دادن تصویر

                      نوشته اصلی توسط marychi
                      چرا. میشه به اندازه 1.5 پیکسل هم تصویر با به طور کلی سیگنال رو جابجا کرد. در واقع این نوعی درونیابیه. مثلا برای 0.5 پیکسل می تونی با میانگین گیری پیکسل مابین پیکسل n و n+1 رو پیدا کنی.
                      برای این کار هم میشه از درونیابی استفاده کرد و هم از روابطی مثل fft. همونطور که می دونی دو تا سیگنال که نسبت به هم شیفت دارند، در فاز fft میزان جابجایی ظاهر میشه. بنابراین برای شیفت دادن کافیه فاز fft تصویر رو تغییر بدی. بعد دوباره ifft بگیری.
                      ممنون که جواب دادی
                      اگه مشکل جابه جایی در تبدیل فوریه هست میتونی از دستور fftshift هم استفاده کنی.
                      تاپیک جامع سیستم مدیریت ساختمان BMS و خانه هوشمند Smart Home
                      دانلود مجموعه آموزشی شرکت Altium ا (Altium Training)
                      مقالات و فایل های آموزشی نرم افزار Labview
                      حل مشکل درایور و راه اندازی FT232 های غیراورجینال

                      دیدگاه


                        #12
                        پاسخ : شیفت دادن تصویر

                        نوشته اصلی توسط (فرشته)
                        اره اتو کوریلیشن رو میخوام...متلب ضریبش رو بدست میاره اما از این روش بعد از محاسبه ضرائب باید تابعش رو بدست بیارم والزام استفاده از فرمول وجود داره!
                        یعنی شما دنبال این هستنید که ببینید متلب از چه فرمولی دو تا ماتریس فرضا n بعدی را داخل هم کوریلیشن میکنه ؟

                        اگه دنبال این هستید توی هلپش هست .

                        دیدگاه


                          #13
                          پاسخ : شیفت دادن تصویر

                          نوشته اصلی توسط IT_FZ
                          یعنی شما دنبال این هستنید که ببینید متلب از چه فرمولی دو تا ماتریس فرضا n بعدی را داخل هم کوریلیشن میکنه ؟

                          اگه دنبال این هستید توی هلپش هست .
                          نه این رو میدونم.

                          سوالی رو در http://www.eca.ir/forum2/index.php?topic=60602.msg338549#msg338549 مطرح کردم بعد به این مورد برخورد کردم که باید این شیفت دادن رخ بده.
                          در واقع شیفتی که میخوام استفاده کنم به خاطر استفاده از فرمول اون تاپیک هست.
                          فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

                          دیدگاه


                            #14
                            پاسخ : شیفت دادن تصویر

                            نوشته اصلی توسط marychi
                            سلام
                            فکر کنم متلب خودش دستور شیفت برای تصویر نداره. من خودم برنامه اش رو نوشتم:
                            کد:
                            function y=imshift(image,a,b)
                            
                            [R C D]=size(image);
                            y=zeros(R,C,D);
                            if a>=0 & b>=0
                              y(1:R-a,1:C-b,:)=image(a+1:R,b+1:C,:);
                            elseif a<=0 & b<=0
                              y(-a+1:R,-b+1:C,:)=image(1:R+a,1:C+b,:);
                            elseif a>=0 & b<=0
                              y(1:R-a,-b+1:C,:)=image(a+1:R,1:C+b,:);
                            elseif a<=0 & b>=0
                              y(-a+1:R,1:C-b,:)=image(1:R+a,b+1:C,:);
                            end
                            که a و b مقدار صحیح هستند.
                            اگه به شیفت به اندازه غیر صحیح (مثلا شیفت به اندازه 0.5 پیکسل) هم نیاز داشتی بگو برنامه اش رو بدم.
                            سلام مجدد

                            من از این کد استفاده کردم و مفید بود و کارم رو راه انداخت...اما یه سوال؛

                            ممکنه کدها رو یه مقدار توضیح بدین.

                            ممنونم
                            فقر ، شب را " بي غذا " سر كردن نيست ................ فقر ، روز را " بي انديشه" سر كردن است

                            دیدگاه


                              #15
                              پاسخ : شیفت دادن تصویر

                              درود
                              در واقع کاری که می کنه به این صورته :
                              اول یه تصویر با مقدار اولیه صفر تشکیل میده:
                              [R C D]=size(image);
                              y=zeros(R,C,D);
                              ابعاد تصویر حالا R و C و D هست. (D رو برای تصاویر رنگی گذاشتم که برای تصاویر رنگی سه و برای گری 1 هست).

                              بعد اگه میزان شیفت مثبت بود (یعنی شیفت به سمت چپ یا بالا) در این صورت مثلا برای شیفت به سمت چپ به میزان 5 پیکسل، باید مقادیر پیکسل های 6 تا اخرین سطر تصویر ورودی یعنی R، را در خانه های 1 تا اخرین سطر منهای 5 قرار داد(R-5). و به دلیل اینکه بقیه پیکسل های سطر ( یعنی پیکسل R-4 تا R) رو صفر قرار می دیم. که به دلیل اینکه مقدار اولیه تصویر خروجی رو با صفر پر کردیم این کار خود به خود انجام میشه.
                              برای ستون هم به همین صورته:
                              if a>=0 & b>=0
                              y(1:R-a,1:C-b,=image(a+1:R,b+1:C,;

                              حالا اگه یکی از مقادیر جابجایی منفی باشه(یعنی شیفت به سمت راست یا پایین) در این صورت مثلا برای شیفت به سمت راست به میزان 5 پیکسل، باید مقادیر پیکسل های 1 تا اخرین سطر تصویر ورودی منهای 5 یعنی R-5 (که در واقع هست (R+(-5) ) . را در خانه های 6 تا اخرین سطر (R) قرار داد. و به دلیل اینکه بقیه پیکسل های سطر ( یعنی پیکسل 1 تا 5) رو صفر قرار می دیم. که به دلیل اینکه مقدار اولیه تصویر خروجی رو با صفر پر کردیم این کار خود به خود انجام میشه.
                              برای ستون هم به همین صورته:
                              elseif a<=0 & b<=0
                              y(-a+1:R,-b+1:C,=image(1:R+a,1:C+b,;

                              برای یکی مثبت و یکی منفی هم ترکیب دو حالت بالا هست:
                              elseif a>=0 & b<=0
                              y(1:R-a,-b+1:C,=image(a+1:R,1:C+b,;
                              elseif a<=0 & b>=0
                              y(-a+1:R,1:C-b,=image(1:R+a,b+1:C,;

                              نمی دونم خوب تونستم بیان کنم یا نه.
                              مـن هیچ ندانم که مرا آن که سرشت
                              از اهل بهشت کرد یا دوزخ زشت
                              جامی و بتی و بربطی بر لب کشت
                              اين هر سه مرا نقد و تو را نسیه بهشت

                              دیدگاه

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