اطلاعیه

Collapse
No announcement yet.

هیستوگرام افقی تصویر در مطلب

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

    هیستوگرام افقی تصویر در مطلب

    کد مطلب هیستوگرام افقی تصویر لبه های عمودی ،که در یکی از مقاله های مربوط به پردازش پلاک خودرو که در همین بخش اومده ،چطور بدست میاد؟
    >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

    #2
    پاسخ : هیستوگرام افقی تصویر در مطلب

    نوشته اصلی توسط hamid_200270
    هیستوگرام افقی تصویر لبه های عمودی
    منظور سوال شما رو نفهمیدم. هیستوگرام در واقع شمردن تعداد پیکسلهای با شدت روشنایی یکسان و نشون دادن تعداد اونهاست مثلا رنگ سفید خالص با شدت 255 چند بار در تصویر تکرار شده.
    خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist

    دیدگاه


      #3
      پاسخ : هیستوگرام افقی تصویر در مطلب

      نوشته اصلی توسط mojalan
      منظور سوال شما رو نفهمیدم. هیستوگرام در واقع شمردن تعداد پیکسلهای با شدت روشنایی یکسان و نشون دادن تعداد اونهاست مثلا رنگ سفید خالص با شدت 255 چند بار در تصویر تکرار شده.
      خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist
      درست حق با شماست خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist ، ولی من منظورم هستوگرام افقی..
      برای مثال در مقاله <روشی جدید و سریع برای تشخیص محل پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی> که در همین بخش قرار داره بعد از پیدا کردن لبه های عمودی شکل به کمک عملگر سوبل ،برای مشخص کردن مکان پلاک از تصویر هیستوگرام افقی تصویر لبه های عمودی گرفت .
      این شکل پیدا کردن لبه های عمودی تصوبر



      و این شکل هم هیستوگرام افقی تصویر لبه های عمودی که به طور کلی سطرهایی که پلاک خودرو در آن ها قرار دارد، دارای بیشترین هیستوگرام افقی هستند



      اما اگر از تابع imhist استفاده کنیم هیستوگرام بصورت شکل زیر میشه


      اما این موضوع رو در چند مقاله دیگه هم دنبال گردم و از هیستوگرام افقی تصویر لبه های عمودی استفاده شد .
      >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

      دیدگاه


        #4
        پاسخ : هیستوگرام افقی تصویر در مطلب

        اگه این هیستوگرام از تصویر باینری گرفته شده باشه، روشش اینه که با دستور im2bw تصویر رو به باینری (دوسطحی) تبدیل کرد، بعد تو هر ستون از تصویر تعداد پیکسلهای صفر (یا یک) رو شمرد.
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
        اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
        يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

        دیدگاه


          #5
          پاسخ : هیستوگرام افقی تصویر در مطلب

          کسی میدونه این هیستوگرام چطور بدست میاد ،نمیتونم جواب درستی بگیرم :cry2:
          >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

          دیدگاه


            #6
            پاسخ : هیستوگرام افقی تصویر در مطلب

            اگر درست متوجه سوالتون شده باشم فکر نکنم درست باشه بگید هیستوگرام.
            امتحان کنید ببینید با plot کردن یک سطر از تصویر به چیزی که میخواهید میرسید یا نه؟
            مثلا:



            که شدت روشنایی همه پیکسلهای سطر اول تصویر شما رو نشون میده.
            It's nice to be important but it's important to be nice!

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

            دیدگاه


              #7
              پاسخ : هیستوگرام افقی تصویر در مطلب

              منظورتون اینه یا نه؟
              کد PHP:
              clear;clc;close all
              imread('image_file.bmp');
              I_greyscale rgb2gray(I);
              I_Binary im2bw(I_greyscale);
              horizontal_histogram sum(I_Binary);
              subplot(2,1,1); imshow(I_Binary)
              subplot(2,1,2); bar(horizontal_histogram

              این هم نتیجه خروجی:

              لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
              لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
              با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
              اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
              يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

              دیدگاه


                #8
                پاسخ : هیستوگرام افقی تصویر در مطلب

                سلام
                شما تصوبر خاکستری رو به باینری تبدیل کردید بعد ازش هیستوگرام گرفتید
                نوشته اصلی توسط هـــادی
                منظورتون اینه یا نه؟
                کد PHP:
                clear;clc;close all
                imread('image_file.bmp');
                I_greyscale rgb2gray(I);
                I_Binary im2bw(I_greyscale);
                horizontal_histogram sum(I_Binary);
                subplot(2,1,1); imshow(I_Binary)
                subplot(2,1,2); bar(horizontal_histogram

                این هم نتیجه خروجی:


                منم از این روش استفاده کردم
                تصویر اصلی:


                نتیجه برنامه شما



                تو چنتا مقاله ای که خونده بودم بعد از تسخیص لبه از هیستوگرام افقی استغاده کرده ولی شما مستقیما تصوبر اصلی رو به باینری تبدیل کردید و بعد هیستوگرام گرفتید بعد اینکه این هیستگرام واضح نیست منظورم اینه که به صورت پستی که گذاشته بودم نیست.

                نوشته اصلی توسط hamid_200270
                درست حق با شماست خود متلب تابعی برای رسم هیستوگرام داره به اسم imhist ، ولی من منظورم هستوگرام افقی..
                برای مثال در مقاله <روشی جدید و سریع برای تشخیص محل پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی> که در همین بخش قرار داره بعد از پیدا کردن لبه های عمودی شکل به کمک عملگر سوبل ،برای مشخص کردن مکان پلاک از تصویر هیستوگرام افقی تصویر لبه های عمودی گرفت .
                این شکل پیدا کردن لبه های عمودی تصوبر



                و این شکل هم هیستوگرام افقی تصویر لبه های عمودی که به طور کلی سطرهایی که پلاک خودرو در آن ها قرار دارد، دارای بیشترین هیستوگرام افقی هستند



                اما اگر از تابع imhist استفاده کنیم هیستوگرام بصورت شکل زیر میشه


                اما این موضوع رو در چند مقاله دیگه هم دنبال گردم و از هیستوگرام افقی تصویر لبه های عمودی استفاده شد .
                >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

                دیدگاه


                  #9
                  پاسخ : هیستوگرام افقی تصویر در مطلب

                  سلام. من فقط کلیت کارو میخواستم نشون بدم که ببینم منظورتون همینه یا نه و منظورم تشخیص پلاک نبوده و فقط مثال زدم.
                  میتونید به جای دستور bar از دستور plot استفاده کنید که نتیجه این شکلی بشه:


                  در مورد لبه های افقی و عمودی (نتیجه سرچ گوگل):


                  For horizontal and vertical edges, you can just do something like:
                  کد PHP:
                  horizontalEdgeImage imfilter(grayImage, [-1 0 1]);
                  verticalEdgeImage  imfilter(grayImage, [-1 0 1]'); 
                  لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                  لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                  با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                  اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                  يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                  دیدگاه


                    #10
                    پاسخ : هیستوگرام افقی تصویر در مطلب

                    سلام آقای هادی
                    راستش من انقدر گیچ شدم که اصلا حرفای شما رو نمی فهمم غیر از این الگوریتم 3تای دیگه هست که باید تا آخر این ماه تموم کنم.
                    اینطور که من فهمیدم شما تو زمینه پردازش تصویر خیلی استادید برخلاف من که اصلا چیزی نمی دونم .اگر میشه یکم واضح تر بگید که منم متوجه بشم.
                    تو لینک http://www.eca.ir/forum2/index.php?topic=65809.0 برای خورشید خانم برنامه ای نوشتید که برای پروژه منم کابرد داره ولی نتونستم ازش استفاده کنم.اگر براتون امکان داره از همین عکسی که گذاشتم استفاده کنید تا منم بتونم ازش استفاده کنم...
                    از لطفتون ممنون
                    >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

                    دیدگاه


                      #11
                      پاسخ : هیستوگرام افقی تصویر در مطلب

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

                      شما روش کارتون رو لطفاً دقیق بگین تا من هم تو برنامه نویسی کمک کنم.
                      لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                      لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                      با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                      اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                      يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                      دیدگاه


                        #12
                        پاسخ : هیستوگرام افقی تصویر در مطلب

                        روش کار این الگوریتم کلا بصورت زیر:


                        از تصوبر ورودی با دستور rgb2gray به خاکستری تبدیل میکنیم وبا دستور f2=fspecial ('gaussian', 15, 0.00000000001);
                        برای خذف نویز های احتمالی استفاده میکنیم در مرحله بعد از دستور f4=edge(f3,'sobel','vertical&#039 لبه های عمودی تصویر رو پیدا میکنیم
                        تا اینجا که مشکلی نیsت اما از مرحته تحلیل هیستوگرام یکم گیچ گنندست.بعد از پیدا کردن لبه های عمودی تصویر ، از تحلیل هیستوگرام کمک گرفته و هیستوگرام افقی تصویر لبه پیدا می شود . بدین منظور برای هر سطر از تصویر تعداد نقاط با سطح خاکستری یک را شمرده و نموداری تشکیل می شود ، که محور افقی آن سطر های تصویر و محور عمودی آن همان تعداد نقاط شمرده شده میباشد
                        به طور کلی سطر هایی که پلاک خودور در آنها قرار دارد دارای بیشترین هیستوگرام افقی هستند لذا مرحله بعدی پیدا کردن سطر هایی است ، که 55% بالای هیستوگرام را تشکیل می دهند خوب اولین مشکل چطور باید سطر هایی که %55 بالای هستوگرام رو پیدا کرد
                        این سطرها محل کاندید پلاک هستند،برای اینکه اثر نویز تا حدی کاهش یابد، سطری به عنوان کاندید در نظر گرفته می شود که اولاً شرط بالا را داشته ثانیاً تعداد نقاط روشن سطر بعدا ی اش 70% تعداد نقاط روشن خود سطر باشد.
                        برای پیدا کردن محل واقعی پلاک با درنظر گرفتن این که عرض پلاک بین 15 تا 35 پیکسله ناحیه های خارج ازین محدوده رو حذف میکنن.میشه بگین چطور میشه این شرط رو تو متلب پیاده سازی کرد؟
                        شکل های الگوریتم:
                        پیدا کردن لبه های عمودی تصویر


                        : هیستوگرام افقی تصویر لبه های عمودی

                        تصویر کاندید دوسطحی بدست آمده از تصویر لبه


                        و بقیه مراحل و طبق الگوریتم ادامه میدیم فعلا این بخش از الگوریتن مشکلتره
                        نوشته اصلی توسط هـــادی
                        شما روش کارتون رو لطفاً دقیق بگین تا من هم تو برنامه نویسی کمک کنم.
                        >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

                        دیدگاه


                          #13
                          پاسخ : هیستوگرام افقی تصویر در مطلب

                          این قسمت رو ننوشتم:
                          نوشته اصلی توسط hamid_200270
                          برای اینکه اثر نویز تا حدی کاهش یابد، سطری به عنوان کاندید در نظر گرفته می شود که اولاً شرط بالا را داشته ثانیاً تعداد نقاط روشن سطر بعدا ی اش 70% تعداد نقاط روشن خود سطر باشد.
                          خروجی فعلاً اینه:(سطرهای کاندید: بین خطوط قرمز و خط زرد بالای آن)


                          این هم کد:(تابع freezeColors فقط برای نمایش استفاده شده و در الگوریتم نقشی نداره)
                          کد PHP:
                          clear;clc;close all
                          imread('Toyota.jpg');
                          I_greyscale rgb2gray(I);
                          verticalEdgeImage  imfilter(I_greyscale, [-1 0 1]);
                          VE_Binary im2bw(verticalEdgeImage,graythresh(verticalEdgeImage));
                          horizontal_projection sum(VE_Binary,2);
                          %
                          miny 1maxy length(horizontal_projection);
                          minx 0maxx max(horizontal_projection) + 10;
                          subplot(2,2,1)
                          colormap('default')
                          imagesc([minx maxx],[miny maxy],I);title('Original')
                          freezeColors
                          subplot
                          (2,2,2)
                          colormap('Gray')
                          imagesc([minx maxx],[miny maxy],I_greyscale);title('Grayscale')
                          freezeColors
                          subplot
                          (2,2,3)
                          colormap('Gray')
                          imagesc([minx maxx],[miny maxy],VE_Binary);title('Binary')
                          freezeColors
                          subplot
                          (2,2,4)
                          colormap('default')
                          imagesc([minx maxx],[miny maxy],flipud(VE_Binary));
                          hold on;barh(flipud(horizontal_projection));title('Horiz Projection')
                          set(gca,'ydir','normal')
                          %
                          Hi 0.55;
                          [~,
                          IX] = sort(horizontal_projection,'descend');
                          Ind IX(round((1-Hi)*length(IX)):end); % non-top 55%
                          horizontal_projection(Ind) = 0;
                          %
                          MinW 15MaxW 35;
                          regs hist_reg(horizontal_projection);
                          remove = [];
                          for 
                          i=1:size(regs,1)
                            if 
                          regs(i,2)-regs(i,1)+&ltMinW || regs(i,2) - regs(i,1)+&gtMaxW
                              remove 
                          = [removei];
                            
                          end
                          end
                          regs
                          (remove,:) = [];
                          %
                          = [minx,maxx];
                          subplot(2,2,2);hold on
                          for size(regs,1)
                            
                          = [regs(i,1),regs(i,1)];
                            
                          line(x,y,'color','y')
                            
                          = [regs(i,2),regs(i,2)];
                            
                          line(x,y,'color','r')
                          end 
                          لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                          لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                          با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                          اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                          يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                          دیدگاه


                            #14
                            پاسخ : هیستوگرام افقی تصویر در مطلب

                            سلام از تلاشتون ممنون
                            برای من سه تا خطا داد که یکیش freezeColors بود که با حذف کردنش درست شد
                            دو تا خطای دیگه
                            ??? [~,IX] = sort(horizontal_projection,'descend'
                            |
                            Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
                            برنامه ای که شما نوشتید برای من خیلی عجیبه ،شما با برنامه دیگه ای کار میکنید! و اینکه فکر کنم این روش شما برای الگوریتم DFT باشه .و نمیشه مثل الگوریتم بالا جلو رفت
                            >>> انگشتان ما نشانه پنج تن و بندهاي ان نشانه چهارده معصوم <<<

                            دیدگاه


                              #15
                              پاسخ : هیستوگرام افقی تصویر در مطلب

                              سلام. برنامه رو کامل کپی کردم اینجا، خطایی که داده هم مشخصه که مربوطه به نامتقارن بودن پرانتز و براکته. هر قسمت برنامه رو هم با یک خط و علامت % جدا کردم.
                              قسمت اول(خط 1 تا 6): دریافت تصویر، تبدیل به سطح خاکستری، تبدیل به تصویر باینری، محاسبه هیستوگرام(پروجکشن) افقی
                              قسمت دوم (27-8): نمایش تصاویر و هیستوگرام افقی
                              قسمت سوم(31-28): حذف زیر 55 درصد
                              قسمت 4 (41-33): حذف سطرهایی که بین 15 تا 35 پیکسل پشت سر هم نیستند.
                              قسمت 5(آخر 50-43): نمایش نواحی سطری کاندید حضور پلاک در تصویر

                              کل فایلهای پروژه
                              رمز فایل: www.eca.ir
                              لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                              لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                              با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                              اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                              يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                              دیدگاه

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