PDA

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



mehran901
شنبه 26 اسفند 1391, 23:27 عصر
سلام بر دوستان ،

به نظرتون چ راه حلی میتونیم واسه مشکل زیر بزنیم :

ی تصویر دارم که داخل یک آرایه بافر به صورت RGb قرار داره ، حالا میخوام بدون جا انداختن پیکسل ها ، یک ماسک فیلتر رو روش ست کنم ، ولی متاسفانه واسه عکسی ب ابعاد 500 در 400 پیکسل حدود 1 ثانیه زمان میبره ... درحالی که عکس من تو حافظه قرار داره و با استفاده از ی For ساده همه پیکسل ها رو ماسک میکنم

این کارو واسه حذف نویز های تصویر میکنم ، دوستان هیچ نظری واسه پردازش این مجموعه پیکسل دارن ؟ یا کلا ویبی رو بندازم دور ؟:D ( با سی پلاس پلاس 10 برابر سرعتش بیشتره) ، ی for ساده ک ی ماتریس رو باید پردازش کنه ...بدون ارجاع اطلاعات به بخش ویژوال ، کلی زمان میگیره تو ویبی 6!

از دوستان کسی با رفرنس های OpenCV داخل ویبی کار کرده ؟

بهروز عباسی
شنبه 26 اسفند 1391, 23:44 عصر
درود

یا کلا ویبی رو بندازم دور ؟:D ( با سی پلاس پلاس 10 برابر سرعتش بیشتره)

اگه می خوای این کارو جدّی دنبال VB رو بی خیال شو.
همون C یا ++C خوبه .

از دوستان کسی با رفرنس های OpenCV داخل ویبی کار کرده ؟
نمیدونستم واسه VB هم یک Wrapper داره !!!:کف:

ولی بهترین زبان برای استفاده از این Library زبان C یا ++C .

موفق باشی.

بهروز عباسی
شنبه 26 اسفند 1391, 23:56 عصر
Tutorial - Anti-Alias Pixels (http://www.vbforums.com/showthread.php?285163-Tutorial-Anti-Alias-Pixels)

mehran901
دوشنبه 28 اسفند 1391, 01:24 صبح
ی سوال دیگه ای که در این رابطه واسم پیش اومده اینه که

نحوه اعمال ماسک های مثلا 3 در 3 با 7 در 7 یجوره ؟ و همین طور
در ماسک های 2 بعدی مثل ماسک edge detection ها ، همون طور که میدونین از دو ماسک جداگونه استفاده میشه که یکیش واسه x و دیگری واسه y هست ، حالا سوال پیش میاد که تو 2 بعدی ها مثلا وقتی ما ی پیکسل رو خوندیم از ماسک x و ماسک y باید تحت شرایط و مختصات یکسان باشن ؟ به عبارت دیگه : عکسمون (فرضا grayscale) باید تو 2 تا ماتریس کپی شده باشه حالا رو یکیش ماسک x convolution و رو دیگری y convolution رو بزنیم و حاصلش رو حالا بنا به روش های مختلف مثل ( ( y ^ 2 + x ^ 2) * 1/2 ( محاسبه کنیم و روی یکی از ماتریس های عکسمون حاصل رو ست کنیم ؟؟؟؟

امیدوارم مفهومو رسونده باشم

تشکر میشه

مصطفی ساتکی
جمعه 30 فروردین 1392, 19:14 عصر
mehran901 @ عزیز سوال پردازش تصویر را در تالار مربوطه مطرح کنید تا دیگران هم بتونن استفاده کنند.
بستگی به کارتون داره بعضی مواقع لبه افقی یا عمودی یا هر 2 باهم نیاز دارید در مواردی که هر 2 را باهم نیاز دارید مشتق x,y را متوسط می گیرید.
و در مورد سوال اول همچین کاری برای تصویری با ابعاد 400* 500 با یک سیستم 2 هسته ای معمولی بنویسی بدون بهینه سازی 10 میلی ثانیه طول می کشه.در ضمن wrapper مربوط به OpenCV برای VB با همون سرهت که عرض کردم اجرا میشه چون dll ها تو زبان C++ نوشته و کامپایل شده.

mehran901
جمعه 30 فروردین 1392, 20:11 عصر
mehran901 @ عزیز سوال پردازش تصویر را در تالار مربوطه مطرح کنید تا دیگران هم بتونن استفاده کنند.
بستگی به کارتون داره بعضی مواقع لبه افقی یا عمودی یا هر 2 باهم نیاز دارید در مواردی که هر 2 را باهم نیاز دارید مشتق x,y را متوسط می گیرید.
و در مورد سوال اول همچین کاری برای تصویری با ابعاد 400* 500 با یک سیستم 2 هسته ای معمولی بنویسی بدون بهینه سازی 10 میلی ثانیه طول می کشه.در ضمن wrapper مربوط به OpenCV برای VB با همون سرهت که عرض کردم اجرا میشه چون dll ها تو زبان C++‎‎ نوشته و کامپایل شده.

آقا دمت گرم کلا مشکلات حل شد ، البته بعد از 13 روز کار شبانه روزی رو بحث پردازش تصویر اونم با ویبی ! البته نتیجش بدک نبود :D نتیجش رتبه یک technical challenge لیگ Autonomous Deminer مسابقات بین المللی ربوکاپ IrOpen2013 ....ویبی 6 رو سربلند کردم اونجا :D ههه

درمورد اون زمانی 1 ثانیه باید عرض کنم منم در عجبم چرا فقط پیاده سازیش اینقدر با سرعت پایین انجام میشه... در سی آره 10 میلی ثانیه ولی تو ویبی 6 ما به فنا رفتیم ! حالا مشکل ما هستیم یا ویبی 6 ! نمیدونم...ولی تو سی پلاس پلاس با ای دی ای کدبلاکس سرعت خیلی بیشتره ...

سپهر-111
جمعه 30 فروردین 1392, 20:47 عصر
نتیجش رتبه یک technical challenge لیگ Autonomous Deminer مسابقات بین المللی ربوکاپ IrOpen2013 ....ویبی 6 رو سربلند کردم اونجا :D ههه


سلام
تبریک عرض میکنم:تشویق:

mehran901
جمعه 30 فروردین 1392, 21:13 عصر
سلام ، سپاسگزارم دوست عزیز

مصطفی ساتکی
جمعه 30 فروردین 1392, 21:28 عصر
درمورد اون زمانی 1 ثانیه باید عرض کنم منم در عجبم چرا فقط پیاده سازیش اینقدر با سرعت پایین انجام میشه... در سی آره 10 میلی ثانیه ولی تو ویبی 6 ما به فنا رفتیم ! حالا مشکل ما هستیم یا ویبی 6 ! نمیدونم...ولی تو سی پلاس پلاس با ای دی ای کدبلاکس سرعت خیلی بیشتره ...
بخاطر اینکه vb مفسر هستش و C++ کامپایلر .البته نسخه های مختلف c++ هم تکنیک های optimization مخصوص به خودشون دارند و این قضیه ربطی به ide نداره .

mehran901
جمعه 30 فروردین 1392, 21:55 عصر
بخاطر اینکه vb مفسر هستش و C++‎‎ کامپایلر .البته نسخه های مختلف C++‎‎ هم تکنیک های optimization مخصوص به خودشون دارند و این قضیه ربطی به ide نداره .
بله 100 البته که ربطی با آی دی ای نداره .... آی دی ای کدبلاکس رو کلی ذکر کردم ، درضمن من فکر میکنم ویبی کامپایلر باشه نه مفسر البته این موضوع رو به وضوح و وفور تو کتاب های مختلف خوندم و دیدم! نمونه کتابشم کتاب مظاهر علی پور بود که یادمه تو 5 6 صفحه اول این مساله رو شفاف توضیح داده بود یا کتاب دیتل دیتل هم اگه اشتباه نکنم

و نکته ای که وجود داره بنا به تعریف مفسر ها مبنی بر ترجمه خط به خط دستورات ، نه ترجمه کلی و سپس بهره گیری و اجرای پروسه ، میتونیم تعریف مفسر رو کاملا مغایر با ویبی(بیسیک ) قلمداد کنیم اینطور نیس ؟

البته با اینکه مطالبی به صورت مکتوب در این زمینه خونده بودم ولی باز سرچ هم زدم و ویکیپدیا هم از ویژوال بیسیک (منظور زبان بیسیک!) به عنوان کامپایلر یاد کرده نه مفسر ...

البته من کم بودن سرعت برنامه های ویبی 6 حتی در حالتی که کاملا تحت مد native کامپایل میشن رو مربوط به ترجمه ناقص و وابسته کد native اون میدونم که از هر 3 خط اسمبلی مجبوره رجوع کنه به موتور مجازیش واسه اجرا ...

SlowCode
شنبه 31 فروردین 1392, 19:55 عصر
وی بی هم مفسری هست و هم کامپایلری.
تنظیمات به طور پیشفرض روی کامپایلری هست، اگه خواستین میتونین رو p-code تنظیم کنید.

setroyd
شنبه 31 فروردین 1392, 21:06 عصر
این موضوع دردیو دوا نمیکنه ! یه مفسر چه .......... اگه قصد گرافیک داری برو رو c++ یا نه برو رو کار با directx یا open gl یا میتونی با delphi هم کار کنی من با delphi چند سال پیش یه برنامه با delphi نوشته بودم در رابطه با کارای گرافیکی فقط رو کنج کاوی و دیدم سرعتش دست کمی از c نداشت .