PDA

View Full Version : سوال: پردازش تصاویر ساده



jalal.H
سه شنبه 31 فروردین 1389, 09:11 صبح
از بچه هایی که در زمینه پردازش تصویر کار کردن

من یه تصویر سیاه و سفید دارم به این شکل که یه صفحه سفید با یک لکه ی بیضی شکل سیاه که دائما در سطح صفحه سفید در حال حرکت هست.

من می خوام مختصات لحظه به لحظه اون لکه رو بدست بیارم.

dousti_design
سه شنبه 31 فروردین 1389, 13:08 عصر
لبه یابی کنید. با توجه به اینکه فقط دوتا رنگ و اونم دقیقا مخالف هم دارید خیلی سادست.
از بالا سمت چپ شروع کنید و تک تک پیکسل ها و همسایگیهاشون رو ک کنید اگر دیدید که رنگ یک پیکسل سیاهه بدونید که اون نقطه گوشه بالا سمت چپ بیضی است(البته این بستگی داره که شما چک کردن پیکسل هارو به صورت ستونی انجام میدید یا سطری). اون نقطه که پیدا شد چند تا راه دارید. میتونید همون نقطه رو با استفاده از همسایگی هاش تعقیب کنید تا جایی که به پیکسلی برخورد کنید که رنگش سفیده(یعنی اتمام بیضی) یا اینکه به همون روال قبلی کار رو ادامه بدید.
و اگر بیضی فقط یک لکه(یعنی فقط یک پیکسل باشه که چه بهتر همون اول که به پیکسل سیاه برخوردید مختصاتشو برمیگردونید.
موفق باشید!

jalal.H
سه شنبه 31 فروردین 1389, 15:02 عصر
دوتا مشکل هست
1- این کار رو چجوری با matlab انجام بدم

2- اندازه صفحه حدودا 40در40 و مساحت بیضی حداقل 4 سانتی متر ومن باید یکی از مراکز بیضی رو به عنوان مرکز ثقل بگیرم تا بتونم هر بار جای صحیح اون رو یدا کنم.

مصطفی ساتکی
سه شنبه 31 فروردین 1389, 18:47 عصر
نیازی به مرکز ثقل نیست. البته پردازش فیلم با Matlab زمان گیره.این کار به راحتی با یک Delphi,C#,C++ می تونی انجامش بدید. بایستی هر لحظه فریم ها رو بگیری و با قبلی دیفرنش بگیره اگر این اختلاف اونقدر بود که از نظر شما جسم حرکت کرده(میزان دقت کار) می تونی شروع به کار کنی .وقتی که دیفرنس انجام می دی دقیقاً بهت میگه که کدوم قسمت تصویر تغییر کرده تو همون مختصات با Trace هشت خونه مجاور کل ابعاد آبجکت هدف بهت داده میشه .به همین راحتی

jalal.H
سه شنبه 31 فروردین 1389, 22:52 عصر
حالا اصل کار شروع شد.

چجوری تصاویر دوربین رو فریم فریم کرده و تک تک پردازش کنیم. :متفکر:

البته خودم دارم یه کارهایی می کنم ولی اگه نظری دارین که کارم بهتر انجام بشه استقبال می کنم. :چشمک:

مصطفی ساتکی
چهارشنبه 01 اردیبهشت 1389, 10:47 صبح
یه دفعه خسته نشی. بجای تاپیک زدن یه سرچ می زدی به جوابت می رسیدی

jalal.H
چهارشنبه 01 اردیبهشت 1389, 12:22 عصر
عجب آدمی هستی ها!!!؟

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

خوب من کلی شکم مو صابون زده بودم که با matlab کارم خیلی سخت نیست، الآن گیر C++ افتادم که تا حالا باهاش از این کارا نکردم.

راست می گی یه راهنمایی بکن یا یه منبع معرفی کن. :عصبانی:

مصطفی ساتکی
چهارشنبه 01 اردیبهشت 1389, 13:04 عصر
به خدا زمان نوشتنش خیلی کلاس با 5 دقیقه بیشتر طول نمی کشه.یا الگوریتمت خوب نیست یا ریاضیت. البته این کار خیلی خیلی ساده است تو دنیای پردازش تصویر مثل جمع 2 عدده.اگه میخای کار کنی یخورده بیشتر وقت بزار تمرین ومطالع را میفتی

مصطفی ساتکی
چهارشنبه 01 اردیبهشت 1389, 13:27 عصر
اینایی که میگمو به یاد داشته باش. پردازشت Realtime.هروقت به دسته از کارا برخورد کردی در آینده دور اضافه کاری نکون تو نقاط بحرانی.تو این دس کار Benchmark مهمه برای هم فیلتر هات و هم هسته کارت.بایستی برای این کار ازباید از Scanline استفاده کنی که تو C++ بایستی آدرس دهی کنی برای کار با Bitmap.اول اینو تو C++ بگیر چون Getpixel به دردت نمی خوره. همیشه سعی کن با تصویر BW کار کنی که بیتی Pixelformat=1 .هر 8 پیکسل تو یه بایت برات سخت بود Grayscale کار کن هر پیکسل یه بایت.سعی کن هنگام Capture تصویر Grayscale بگیری که هی مجبور نباشی تبدیل کنی البته بخای تبدیل کنی هم زیاد زمان نمی گیره. بعد اون یه Threshold رو تثویر می زنی Threshold پیشرفته تو این کار نیاز نداری مثلاً همون رویه که داره Grayscale می کنه وقتی که شدت هر نقطه رو بدست آورد بهش بگو از بزرگ تر از 128 بود سفید(255) و اگر کوچکتر بود سیاه(0). بعد هم با یک لبه گیری و Trace می تونی این کارو انجام بدی .برای لبه گیری تو این کار نیازی نیست از Canny,Sobel یا غیره استفاده کنی از Bound Extraction مورفولوژی استفاده کن که تو یه تاپیک توضیحش دادم سرچ کن. بعد با استفاده از جستجوی هشت خونه مجاور کل پیکسل ها رو Trace کن(اینو بایستی خوب پیاده کنی وگرنه زمانگیر میشه) اون Diffrence رو هم بهت گفت بین فریم ها اعمال کن که هی سربار اضافه به Cpu وارد نشه.همرو واست توضیح دادم پس تو اینجا چخ نقشی داشتی(شوخی).بعد این کار یه غرور کاذب به آدما دست میده که پردازش تصویر دنبال کنه آخرش مثل ما بدبخت میشی نکن این کارو . کتاب گنزالسو بخون از همه راحتر و کیک تر همین کتابه.گنزالس کتابش بدیش اینه که زیاد وارد جزئیات نمیشه شروع نکرده خاتمه میده.خودشم میگه اصول پردازش تصویر .اگر به اینجا رسیدی بعدش نوبت wavelet, Neural که بایستی یاد بگیری این هم تموم شد بعدش نوبت Fuzzy و Genetic به اینجا که رسیدی که زمینه برات به وجود میاد که نگو خود شبکه عصبی پیرت می کنه.البته تا اینجا فقط زمینه های کلی رو بهت گفتم چون گفتی راهنمایی کن برای شبکه عصبی کتاب Hagan رو بگیر که آونایی که ToolBox عصبی Matlab نوشتن همین کتابو خوندن البته دکتر منهاج تو ایران نیز این کتاب کپ زده بعداً به نام تالیف جا افتاده .کتاب Hagan در زمینه شبکه RBF چیزی نداره که یکی از مهم ترین شبکه هاست.البته یه Account برای IEEE می خایی که روزی حداقل 10 تا paper صرف کنی تا بزرگ شی بازم راهنمایی خواستی در خدمتم

jalal.H
چهارشنبه 01 اردیبهشت 1389, 14:31 عصر
ببین وقتی پستتو خوندم سرم گیج رفت.

.
.
.
واقعا از راهنماییت ممنون.

راستی این کتاب گنزالس و پیدا نمی کنم اگه < زحمتی نیست > داری لینکشو بزار

مصطفی ساتکی
چهارشنبه 01 اردیبهشت 1389, 17:55 عصر
ببین کم کم داره ازت خوشم میاد. برو تو این سایت کتاب های مورد علاقتو دانلود کن http://www.takfapoya.com
ولی یادت باشه مهم تر از کتاب داشتن کتاب خوندن این همیشه یادت باشه کمک خواستی یا پیام خصوصی بده یا تاپیک بزن
موفق باشی

epotassium
جمعه 03 اردیبهشت 1389, 11:02 صبح
يه سري هم به اين وب بزنيد. مشكلتون حل مي شه.
www.matlabtrainings.blogfa.com

jalal.H
جمعه 03 اردیبهشت 1389, 14:58 عصر
يه سري هم به اين وب بزنيد. مشكلتون حل مي شه.
www.matlabtrainings.blogfa.com (http://www.matlabtrainings.blogfa.com)

من که تو این زمینه اماتوری بیش نیستم ولی به نظرت با matlab <پردازش فیلم که از یک دوربین مدار بسته ضبط شده> میشه !؟

مصطفی ساتکی
جمعه 03 اردیبهشت 1389, 23:01 عصر
به نظرم فیلم رو با مطلب بی خیال شی بهتره .Matlab با تصویر500*500 مشکل داره چه برسه با فریم هایی پشت سرهم.با یه زبان برنامه نویسی اونم تو کدت باید دقت کنی که سربار نداشته باشه