اطلاعیه

Collapse
No announcement yet.

Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

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

    پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول


    سلام به همه دوستان.
    من میخوام یه برنامه توی دلفی (یا سی شارپ یا مطلب)بنویسم که از عکس مشتق بگیره.
    خیلی خیلی ممنون میشم اگه کمک کنید. :smile:
    اگه کد برنامه رو داشته باشید که حرف نداره.
    متشکرم

    دیدگاه


      پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

      شما باید کرنل های مشتق رو پیکسل به پیکسل به تصویر اعمال کنید. دو تا کرنل برای گرفتن مشتق عمودی و افقی
      -1 -1 -1 1 0 1-
      0 * 0 1 * -1
      1 1 1 1 0 -1
      هست. پیکسلی که با ستاره مشخص شده پیکسل مورد نظر هست و ضریبش هم صفر هست

      دیدگاه


        پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

        حل کامل مسائل گونزالز:
        http://eehadi.persiangig.com/Digital%20image%20processing%20%20Gonzalez%202Ed%2 0%20Solutions%20Manual.pdf
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
        اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
        یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

        دیدگاه


          پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

          الگوریتم kmeans یکی از الگوریتم های clustering یا خوشه بندی است که جزو طبقه بندی بدون سرپرست است یعنی بدون داده های آموزشی.
          فرض کنید می خواهید یک تصویر را که شامل چند ناحیه است خوشه بندی کنید. روش کار به این صورت است که اول به تعداد نواحی نقاطی را به صورت تصادفی به عنوان مرکز خوشه انتخاب می کنید. بعد فاصله تمام نقاط با هرکدام از این مراکز را حساب می کنید. هر نقطه ای را به مرکزی که نزدیک تر است نسبت می دهید یعنی مثلاً اگر نقطه (x,y) به مرکز ci=(xi,yi نزدیک تر بود می گویید نقطه (x,y) متعلق به کلاس(خوشه) i ام است. بعد از این که این کار را برای همه نقاط تکرار کردید. در مرحله بعد مرکز واقعی هر خوشه را محاسبه می کنید و جایگزین مرکز قبلی می کنید. دوباره کار قبل را برای همین مراکز و برای تمام نقاط تکرار می کنید تا مراکز جدید به دست بیاید . این کار را تا وقتی که فاصله مراکز جدید از قبلی به اندازه کافی کم شود تکرار کنید.
          برنامه متلب:
          کد PHP:
          Pattern Classification Chapter 10 ClassCE 1 k-means clustering
          %Hadi *
          clear;close all;clc;
          %% 
          Data
          m1
          =[1 0];m2=[0 1];m3=[1 1];
          sigma1=[2 0;0 .5];sigma2=[1 0;0 1];sigma3=[.1 0;0 1];
          c(1:330,:)=mvnrnd(m1,sigma1,330);
          c(331:660,:)=mvnrnd(m2,sigma2,330);
          c(661:1000,:)=mvnrnd(m3,sigma3,340);
          figure(1)
          plot(c(:,1),c(:,2),'ob','MarkerSize',2);
          xlabel('feature 1');ylabel('feature 2');
          title('3 clusters, 2 features');
          %% Algorithm
          mu
          =input('Enter initial mean (3*2 matrix:rows=clusters,columns=features) = ');
          g=zeros(1000,1);
          finish=0;
          k=1;
          while ~
          finish
            
          for i=1:1000
              d1
          =norm(c(i,:)-mu(1,:));
              
          d2=norm(c(i,:)-mu(2,:));
              
          d3=norm(c(i,:)-mu(3,:));
              [
          d g(i)]=min([d1,d2,d3]);
            
          end
            j1
          =1;j2=1;j3=1;
            
          cluster1=zeros(1,2); cluster2=zeros(1,2); cluster3=zeros(1,2);
            for 
          j=1:1000
             
          if g(j)==1
              cluster1
          (j1,:)=c(j,:);
              
          j1=j1+1;
             elseif 
          g(j)==2
               cluster2
          (j2,:)=c(j,:);
               
          j2=j2+1;
             else
               
          cluster3(j3,:)=c(j,:);
               
          j3=j3+1;
             
          end
            end
            mu2
          =mu;
            
          mu(1,:)=mean(cluster1);
            
          mu(2,:)=mean(cluster2);
            
          mu(3,:)=mean(cluster3);
            if 
          abs(mu2-mu)<0.01
              finish
          =1;
            
          end 
            k
          =k+1;
          end
          figure
          (2)
          plot(cluster1(:,1),cluster1(:,2),'bo','MarkerSize',3)
          hold on
          plot
          (cluster2(:,1),cluster2(:,2),'go','MarkerSize',3)
          plot(cluster3(:,1),cluster3(:,2),'ro','MarkerSize',3)
          title(strcat('k-means clustering, repeat=',num2str(k))) 


          این هم یک توضیح کوتاه درباره k-means با مثال: http://eca.ir/sharing/uploads/13603980701.rar
          لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
          لطفاً سوالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
          با تمام وجود گناه کردیم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنیم چه می کند؟"دکتر شریعتی"
          اگر جایی که ایستاده اید را نمی پسندید، عوضش کنید شما درخت نیستید!! "پاسکال"
          یا به اندازه ی آرزوهایت تلاش کن یا به اندازه تلاشت آرزو کن. "شکسپیر"

          دیدگاه


            پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

            سلام و عرض خسته نباشید

            می خواستم بدونم اگر لازم باشه تصاویری که از یک دوربین بصورت زنده، با یک compression خاصی مثل h264 ، دارن میان رو پردازش کنم، از چه روشی باید استفاده کنم ؟ آیا SDK خاصی بسته به دوربین موجوده ؟ یا مثلا از matlab هم میشه ؟

            اگر منابع عملی برای پیاده سازی هم دارید ممنون میشم راهنمایی کنید. :redface:

            دیدگاه


              پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

              اکثر دوربینهای ماشین ویژن خودشون درایور نرم افزاری دارن که مثلا اطلاعات رو از شبکه یا پورت 1394 میگیرن و دیکد میکنند و میشه از خود درایور تصویر رو گرفت، انواع دیگه ای هم از دوربینهای ماشین ویژن هستند که کلا تصویر خام رو ارسال میکنند و دیگه فشرده سازی انجام نمیدن که کیفیت بالاتری هم دارن و دیگه نیازی به درایور هم ندارند و میشه مستقیم با نرم افزار کنترلشون کرد.
              برای پردازش تصویر آنلاین به صورت استاندارد، تنها و تنها از FPGA میشه استفاده کرد و سخت افزارهای مثل کامپیوتر و یا بیسکوئیت پی سی از انجام اینکارها عاجزن. یک نمونه مثال میزنم، تصویر دیجیتال با فرمت SD که به صورت سریال(SDI) بین مبدا و مقصد ارسال میشه، رزولوشن 720X576 داره و 25 فریم در ثانیه هست که چون سریال هم هست کلاکی برابر با 270Mhz داره، بعد که به ویدئوی دیجیتال موازی تبدیل میشه، میشه 10 بیتی موازی با کلاک 27Mhz که اگه تنها و تنها بیت ریت اون رو حساب کنیم میشه 27*10 برابر 270 مگابیت بر ثانیه که اگه کامپیوتری کارت شبکه 1000 هم داشته باشه باز هم با اجرای کوچکترین پردازش روی تصویر دیجیتال کم میاره، حالا سرعت کامپیوتر هرچی میخواد باشه، اما همون کار روی FPGA هم با کلاک پایین تر نسبت به کامپیوتر به صورت زنده ممکنه هم اینکه در بعضی موارد زمان پردازش منفی هم میشه، یعنی قبل از اینکه حتی یک فریم به پایان برسه مثلا میشه تشخیص داد که کاراکتر الف در کجای تصویر قرار داره که از نظر زمانی چون هنوز فریم کاملا به آخر نرسیده، در نتیجه پیچیدگی زمانی منفی در میاد که درنتیجه پردازش آنلاین ممکن میشه و هیچ تاخییری بین فریمها نیست.
              اسمایل، تومورو ویل بی وُرس

              دیدگاه


                پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                نوشته اصلی توسط ژوپیتر
                اکثر دوربینهای ماشین ویژن خودشون درایور نرم افزاری دارن که مثلا اطلاعات رو از شبکه یا پورت 1394 میگیرن و دیکد میکنند و میشه از خود درایور تصویر رو گرفت، انواع دیگه ای هم از دوربینهای ماشین ویژن هستند که کلا تصویر خام رو ارسال میکنند و دیگه فشرده سازی انجام نمیدن که کیفیت بالاتری هم دارن و دیگه نیازی به درایور هم ندارند و میشه مستقیم با نرم افزار کنترلشون کرد.
                برای پردازش تصویر آنلاین به صورت استاندارد، تنها و تنها از FPGA میشه استفاده کرد و سخت افزارهای مثل کامپیوتر و یا بیسکوئیت پی سی از انجام اینکارها عاجزن. یک نمونه مثال میزنم، تصویر دیجیتال با فرمت SD که به صورت سریال(SDI) بین مبدا و مقصد ارسال میشه، رزولوشن 720X576 داره و 25 فریم در ثانیه هست که چون سریال هم هست کلاکی برابر با 270Mhz داره، بعد که به ویدئوی دیجیتال موازی تبدیل میشه، میشه 10 بیتی موازی با کلاک 27Mhz که اگه تنها و تنها بیت ریت اون رو حساب کنیم میشه 27*10 برابر 270 مگابیت بر ثانیه که اگه کامپیوتری کارت شبکه 1000 هم داشته باشه باز هم با اجرای کوچکترین پردازش روی تصویر دیجیتال کم میاره، حالا سرعت کامپیوتر هرچی میخواد باشه، اما همون کار روی FPGA هم با کلاک پایین تر نسبت به کامپیوتر به صورت زنده ممکنه هم اینکه در بعضی موارد زمان پردازش منفی هم میشه، یعنی قبل از اینکه حتی یک فریم به پایان برسه مثلا میشه تشخیص داد که کاراکتر الف در کجای تصویر قرار داره که از نظر زمانی چون هنوز فریم کاملا به آخر نرسیده، در نتیجه پیچیدگی زمانی منفی در میاد که درنتیجه پردازش آنلاین ممکن میشه و هیچ تاخییری بین فریمها نیست.
                با سلام
                جناب ژوپیتر ، به غیر از روش های مبتنی بر FPGA ، پردازنده های ARM نیز در زمینه تصویر قابلینهای اثبات شده دارند:
                مثال: فیلمبرداری با رزولوشن 1024*768 و 1280*1024 که در گوشیهای قوی موبایل سال 2010 و 2011 با کیفیت بصری DVD رایج و سرعت 30 فریم در ثانیه،
                ( مثلا سنسور تصویر 5 و 9 و 12 مگاپیکسل برای عکس و رزولوشن فوق الذکر برای فیلم ، )
                عملیات انتقال داده تصویر خام ، موازی از باس 10 بیتی و فشرده سازی و ضبط در مموری و نمایش همزمان در LCD 800*400
                توسط پردازنده های
                ARM 1176
                ARM CORTEX A8
                ARM CORTEX A9
                از سامسونگ و کوالکام و تگزاس

                بنده پس از انتقال یک فایل ویدیویی که توسط یک گوشی مدرن ، به کامپیونر و نمایش آن با POWERDVD با رزولوشن مذکور و مقایسه با فیمهای DVD ،
                ناچار به تصدیق توانایی پردازشی این خانواده از ARM شدم.

                لطفا ، تصاویری که از مشخصات خانواده جدید ARM در WIKI ارایه شده و در پست ذیل قرار دادم ، ملاحظه فرمایید.

                http://www.eca.ir/forum2/index.php?t...2223#msg262223

                با سپاس
                گشتی در لاله زار
                http://www.eca.ir/forum2/index.php?topic=76138.0

                http://www.eca.ir/forum2/index.php?topic=76141

                دیدگاه


                  پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                  به طور کل یک سیستم Online حالا چه برای پردازش تصویر و یا برای انجام کارهای دیگه چند مشخصه بارز داره که فرقش رو با بقیه سیستمها زیاد میکنه.
                  مثلا در سیستم ها Live حرفه ای فشرده سازهای MPEG-II یا MPEG-4 هرگز از ARM استفاده نمیشه، چرا؟
                  چون اساس کار فشرده سازهای آنلاین برمبنای سخت افزاره و نه نرم افزار، شما میتونید هم انکودر MPEG-II رو به صورت نرم افزاری داشته باشید و هم مدار ASIC اون رو استفاده کنید. در انکودر نرم افزاری که تحت یک سیستم عامل و یا حتی بدون سیستم عامل ممکنه کار بکنه هرگز نمیشه اطمینان داشت که مثلا تاخییر انکودینگ تا خروجی همواره 10 میلی ثانیه هست، ولی در یک مدار ASIC یا FPGA همواره اون تاخییر 10 میلی ثانیه هست و هرگز تغییر نمیکنه، چه بسا نرم افزار احتمال هنگ کردن رو داره ولی سخت افزار حتی اگه صدمه هم ببینه باز به کارش ادامه میده، نهایتا تصویر به هم میریزه.
                  در این میان چیپهای فشرده ساز زیادی هستند که به اسم Online Encoder فروخته میشن، اما نوعی که مفهوم آنلاین رو به صورت واقعی یا به قول خودم استاندارد رو داره تنها مدلهای ASIC یا FPGA هستند که حتی کمپانی های بزرگی که در زمینه Broadcast فعالیت دارند مثل Tandberg همواره از FPGA استفاده میکنه، چون هم قابلیت برنامه پذیری دوباره رو داره و هم قابل تغییر هست، شما حتی میتونید توی همون FPGA علاوه بر انکودینگ تصویر دو تا پردازنده ARM رو هم در اون FPGA پیاده کنید و استفاده کنید.
                  برای این نوشتم استاندارد که مثلا همین چیپهایی که مشخصاتشون رو نوشتید حتی 13818-1 رو هم ساپورت نمیکنن چه برسه که Certificate هم برای محصولشون به عنوان فشرده ساز MPEG داشته باشن، حتی Real-Time هم نیستند و اون نمودار مقایسه هم مربوط به اجرای انکودینگ MPEG-II هست و نه پردازش آنلاین. خوب یک کامپیوتر هم با 4 گیگا هرتز میتونه نرم افزاری همون کار رو سریعتر انجام بده ولی یک FPGA که مدار منطقی فشرده ساز توش پیاده شده میتونه با 200 مگاهرتز کلاک از همه اینها سریعتر کار کنه.
                  یک نمونه مثال میزنم، هر Set-top Box (ریسیور خانگی) رو که باز کنید، هر کدوم وابسته به نوع شرکت سازنده از یک نوع چیپی استفاده کرده، همه اونها هم، هم از سیستم عامل استفاده میکنند و هم دیکودینگ آنلاین دارند ولی توی هیچ کدوم، تاکیید میکنم توی هیچ کدوم از یک پردازنده arm استفاده نشده و اگر هست حتما در کنارش چند CoProcessor هست که اونها نقش دیکدینگ رو بازی میکنن. مثلا یک نمونه ممکنه پردازنده SH-4 داشته باشه ولی چیپهای دیکدینگش حتما ASIC هست، البته چیزی که خیلی مد شده اینه که چیپها به صورت تکی زده میشه که به Multimedia chip معروفند که در اون تک چیپ هم پردازنده ای مثل arm یا sh-4 ممکنه باشه و حتما در کنارش یک یا دو مدار ASIC کار دیکدینگ رو به صورت آنلاین انجام میدن.
                  اسمایل، تومورو ویل بی وُرس

                  دیدگاه


                    پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                    سلام دوستان :bye
                    من یه عکس رو که توسط وبکم گرفته شده رو توی محیط متلب اوردم و حالا ازش یه ماتریس 480 در 640 دارم که درایه هاش از صفر تا 255 متغیرند.سوالم اینه که چطور میتونم مجموع تمام درایه های بخش خاصی از این ماتریس رو بدست بیارم .مثلا جمع تمام درایه ها از سطر اول تا 24 و ستون یک تا 20 که کلا میشه 480 درایه.

                    با تشکر

                    دیدگاه


                      پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                      با سلام ....

                      یه روشش استفاده از حلقه for هست البته به نظرم ساده تر از این با توابع متلب بشه ... مثلا یه مثال :

                      الان قسمت صورتی رنگ جمعش محاسبه شده ...


                      مصادیق اظهار محبت به همسر
                      بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                      ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                      اثر قصه گویی برای کودکان

                      دیدگاه


                        پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                        اولا تا میتونی تو متلب از حلقه for استفاده نکن. دوما این چیزاییی که مینویسم امیدوارم درست باشن چون الان رو سیستمم متلب ندارم
                        روش کار اینه : فرض کن اسم آرایه im باشه
                        ابتدا اون قسمت از آرایه رو جدا میکنی

                        im1=im(1:24,1:20);

                        مجموع این آرایه رو بدست میاری که میشه یه آرایه سطری

                        im2=sum(im1);

                        دوباره از تابع sum برای بدست آوردن مجموع im2 استفاده میکنی میشه اون عددی که میخوای. بطور فشرده هم برنامت این میشه :

                        sumofim=sum(sum(im(1:24,1:20)));

                        دیدگاه


                          پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                          با سلام ....

                          اره اصلا از حلقه for نباشه بهتره ... :agree: مال شما هم کاملا درسته این جوری هم میشه که دیگه دوبار sum نمیخواد ..

                          مصادیق اظهار محبت به همسر
                          بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                          ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                          اثر قصه گویی برای کودکان

                          دیدگاه


                            پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                            سلام
                            من به عنوان ورودی یک ماتریس2*3 وارد می کنم ولی جواب نمیده لطفا راهنمایی کنید

                            دیدگاه


                              پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                              سلام خدمت دوستان.
                              من ترم گذشته درس "سنجش از دور" گرفتم و پروژه درسمم طبقه بندی تصویر ماهواره ای به صورت "textural" و "contextual" با استفاده از ماتریس همخوانی است.ولی متاسفانه نه استادم کمکی بهم کرده و نه خودم چیزی میدونم.البته مقاله گرفتم از اینترنت ولی ... الان به شدت به یک کد تو متلب نیاز دارم.اگه دوستان بتونن کمکم کنند ممنون میشم.

                              دیدگاه


                                پاسخ : Frequently Asked Questions -- مـبـاحـث و سـوالات مـتـداول

                                با سلام خدمت دوستان عزیز.

                                دوستان من یک تصویر دارم که زمینه سفید و یک آبجکت قرمز رنگ داخل آن دارم ، حالا قصد دارم با برنامه متلب مختصات یعنی (x,y) آبجکت قرمز رنگ را بدست بیارم.

                                دوستان بگن با چه روشی میتونم این کار بکنم

                                دوستان لطف کنند منو راهنمایی کنن.

                                با تشکر.

                                دیدگاه

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