PDA

View Full Version : کمک در برنهمه پردازش تصویر تخته هوشمند



$ M 3 H R D A D $
سه شنبه 12 دی 1391, 22:29 عصر
کار با دوربین play station سونی sony eye


سلام من این دوربین و دارم تو گوگل بزنید میبینیدش
تصویرش و با C#‎ میگیرم و تو pictur box میریزم
تا 64 فریم بر ثانیه هم تصویر میده
من میخوام یک تخته هوشمند بسازم
یعنی دوربین و وصل کنم یکجا
و روبروش یک دیوار یا تخته هست
و با یک قلم نوری که سر قلم ماادون قرمز هست که با پشم دیده نمیشه اما تو تصویر نور خاصی داره کار کنم
یعنی هر کاری می کنم کلیک درگ و ... تو مامپیوتر شبیه سازی منم
میخوام بدونم کسی با ظرز کار این تخته ها آشناست ؟
من جطوری باید اون نور مادون قرمز و تو تصویر پیدا کنم که بفهمم x y چیه ؟

plus
سه شنبه 12 دی 1391, 22:41 عصر
شما مطمئنی دوربین شما اون نور خاص رو تشخیص میده؟ اگه قرار باشه دوربین تصاویر قابل دیدن برگردونه دیگه اون نور خاص رو بر نمیگردونه مگه اینکه دوربین شما دوربین مادون قرمز باشه که در اون صورت فقط اون نور خاص رو برمیگردونه.

$ M 3 H R D A D $
سه شنبه 12 دی 1391, 22:54 عصر
اون نور و تشخیص میده دوست عزیز
به صورت سفید
نمیدونم دوربین کلا کارش پیه و چجوری جشم یک دوربین کار میکنه
اما خوب آینه و مثال بزنیم نور بهش میخوره و تصاویر و از اون ظریق میبینیم
حالا نور میخوره به یک جسم به بدن ما به هرچیزی ما اونو میبینیم
حالا باید یک فرقی بین جسم ( دیوار قاب عمس در و چنجره ) به نور مادون قرمز باشه تو تصویر برگشتی دیگه ؟

$ M 3 H R D A D $
سه شنبه 12 دی 1391, 23:08 عصر
وقتی قلم و روشن میکنم نقطه معلومه
من میگم با نگاتیو کردن میشه به نتیه رسید ؟

plus
سه شنبه 12 دی 1391, 23:27 عصر
خوب اگه همیشه نورش (Intensity) به نسبت بقیه پیکسل های تصوری اندازه کافی زیاد باشه، با یک سری عملیات پردازش تصویر میشه با دقت خطای خیلی کمی مختصاتش رو بدست آورد.
این کار توی Matlab به نسبت خیلی ساده تر از #C هست (با توابعی که داره).ولی در #C...اگه تصویر رو یک ماتریس 2x2 که هر عنصرش یک رنگه در نظر بگیریم، شما باید دنبال مختصات محدوده ای باشی که روشن ترین رنگ رو داره.
میگم محدوده چون دقیقا یک پیکسل نیست.شاید این بهترین راه نباشه ولی میشه این کارو کرد که:شما کل این ماتریس رو پیمایش کنی و مثلا بلاک های 5x5 رو رنگشون رو بدست بیاری و از رنگشون میانگین بگیری و در طی این پیمایش، محل بلاکی که پرنور ترین پیکسل ها رو داره رو نگه داری. به آخر پیمایش که بررسی، اون محل، محل مورد نظره.
البته راه های ساده تری هم به نظرم میرسه ولی دقتشون پایین تره، مثلا میتونی فقط دنبال پیکسلی که پرنور تر هست بگردی. (منظور از پر نور بودن، نزدیک بودن رنگ، به رنگ سفیده- RGB 255 255 255).
اینم بگم که من در مورد امکاناتی که برای پردازش تصویر #C داره آشنا نیستم ممکنه امکانات خوبی داشته باشه، میتونی بری دنبالش.

$ M 3 H R D A D $
چهارشنبه 13 دی 1391, 00:13 صبح
چظوری بفمم نور پر رنگ کدومه ؟ تو c# تیکه کد میتونی بگی ؟

plus
چهارشنبه 13 دی 1391, 00:33 صبح
این کد، محل پیکسلی با بیشترین نور رو بدست میاره. البته همونطور که گفتم این روش دقتش پایینه البته برای شروع خوبه:

Image image = Image.FromFile(@"D:\Picture\Picture.jpg");
Bitmap bitmap = new Bitmap(image);
image.Dispose();

Point maxIntensityPoint = new Point(-1, -1);
int maxIntensity = int.MinValue;

for (int x = 0; x < bitmap.Width; x++)
{
for (int y = 0; y < bitmap.Height; y++)
{
Color pixelColor = bitmap.GetPixel(x, y);
int averageIntensity = (pixelColor.R + pixelColor.G + pixelColor.B) / 3;
if (averageIntensity > maxIntensity)
{
maxIntensity = averageIntensity;
maxIntensityPoint = new Point(x, y);
}
}
}
bitmap.Dispose();

MessageBox.Show(string.Format("Max intensity point: {0}", maxIntensityPoint));


این نکته رو هم بگم که استفاده از متد GetPixel سرعت خوبی در حلقه ها و پردازش های سنگنین نداره ولی شما فعلا درگیرش نشی و راه مناسب رو پیدا کنی بهتره.بعدن میتونی سرعت کار رو بهتر کنی...

$ M 3 H R D A D $
چهارشنبه 13 دی 1391, 01:04 صبح
ممنون از زجمتتون اما اشتباه تشخیص میده

$ M 3 H R D A D $
چهارشنبه 13 دی 1391, 01:05 صبح
کلا فک کنم این روش درست نباشه
آخه فاصله دوربین تا تصویر هم رنگ و شدت کم و زیاد میکنه بازم متفاوت میشه

plus
چهارشنبه 13 دی 1391, 16:27 عصر
گفتم دقت این روش خیلی پایینه فقط برای مثال اون کد رو دادم.برای دقت بالا باید خیلی روش کار کرد...