PDA

View Full Version : سوال: دخيره مختصات Pixel هاي يك شكل هندسي



xminxmin
سه شنبه 16 شهریور 1389, 21:12 عصر
سلام دوستان
فرض كنيد يك شكل هندسي رو شما روي كاغذ كشيديد يا چاپ كرديد (دستي، اتوكد يا...)
حالا اون رو Scan كرديد و بصورت عكس درآورديد.

چطور ميشه مختصات نقاط اين شكل رو بصورت x و y دخيره كرد؟
مساله مهم اينجا واحد اندازه گيريه. تبديل Pixel به سانتيمتر و ميليمتر و... و البته مقياس هم مهمه.
مي خوام Pixel به Pixel دخيره بشه.

ميشه واحد اندازه گيري رو در VB سانتيمتر در نظر گرفت. (چطوري؟)
اما آياا دقت لازم رو داره؟ چون فرض كنيد اون شكل بايد با همون مختصات ها بعدا به همون اندازه (دقيقا) ترسيم بشه!!!

پيشنهاد شما چيه؟
برنامه نمونه اي داريد؟ يا هر راهنمايي ديگه اي؟

xminxmin
چهارشنبه 17 شهریور 1389, 12:32 عصر
یعنی حتی مدیران و اساتید هم نمی دونن؟:عصبانی++:

xminxmin
چهارشنبه 17 شهریور 1389, 22:11 عصر
بابا يكي جواب من رو بده. برام مهمه. خواهشا:گریه:

tabatabaeefar
پنج شنبه 18 شهریور 1389, 09:38 صبح
سلام
1- اگر ممکنه منظورتون رو واضح تر بیان کنید
2- این تصویر رنگیه یا تک رنگ؟ و اگر تک رنگه طیف داره (کم رنگ و پررنگ میشه)؟

xminxmin
پنج شنبه 18 شهریور 1389, 12:16 عصر
ممنون از شما:لبخندساده:

ببینید یک دستگاه برش ورق آهنی داریم که با یک نوک لیزری داره آهن رو می بره. نیاز به مختصات نقاط داره تا بتونه برش رو روی ورق آهن انجام بده.
حالا مسئله اینه، یک نقشه داریم که مثلا با اتوکد کشیده و چاپ شده، با Scan به JPG تبدیل شده ( تاکیدی بر Scan نیست. می تونه همون فایل اتوکد بهJPG تبدیل شده باشه)

چون دستگاه برش مختصات لازم داره، یه برنامه می خوایم که مختصات این نقشه رو در بیاره و بتونیم مختصات رو به دستگاه بدیم تا از روش ببره.

حالا این وسط تو این برنامه باید بررسی بشه پیکسل ها با مختصات واحد سانتیمتر ذخیره بشه!
باز اگر توضیحی می خوای بپرسید تا بگم

در مورد سوال 2 هم باید بگم یه نقشه هست دیگه. برای برش تک رنگ مهمه. پس اگر هم رنگی باشه باید تبدیل به تک رنگ بشه:متفکر:

منتظر جوابتون هستم

tabatabaeefar
پنج شنبه 18 شهریور 1389, 12:39 عصر
Dim x, y, Height, Width, value AsInteger
Dim btPic As Bitmap = New Bitmap("Address", Width, Height)
value = btPic.GetPixel(x, y).ToArgb


شما تصویر مد نظرتون رو با هر اندازه ای که مایلید در btPic لود کنید و با تابع ToArgb میتونید میزان رنگ اون رو تشخیص بدید.
باید میانگین بین سیاه و سفید را محاسبه کرده و بعد تشخیص بدید رنگی که در وختصات x,y کاغذ قرار داره سفیده یا سیاه.
باید از یک حلقه تو در تو استفاده کنید تا کل برگه خونده بشه.
باز هم اگه سئوالی داشتید در خدمتم.

shask00l
پنج شنبه 18 شهریور 1389, 12:49 عصر
فکر میکنم برای تبدیل مستقیم نقشه های اتوکد یا تصاویر به Gcode برنامه ی آماده وجود داشته باشه . سرچ کن برادر

xminxmin
پنج شنبه 18 شهریور 1389, 22:18 عصر
tabatabaeefar عزيز:لبخندساده:


برای برش تک رنگ مهمه. پس اگر هم رنگی باشه باید تبدیل به تک رنگ بشه

بحث سر رنگ نيست. هر رنگي باشه تبديل به سياه مطلق ميشه

shask00l عزيز:لبخندساده:
تبديل مستقيم به G-Code اگر باشه كه عاليه!:تشویق:
سرچ كردم. اما نتونستم چيز زيادي پيدا كنم. يعني وروديشون فايل هاي CNC هست. (CNC همون دستگاه برش هست) . موردي پيدا نكردم كه ورودي عكس بگيره. لطفا اگر لينكي داريد يا پيدا كرديد برام بگذاريد. منم برنامه فارسي تكميل شده با امكانات خيلي بيشتر رو همينجا براي همه مي گذارم. :لبخندساده:

mehdad.koulab
پنج شنبه 18 شهریور 1389, 22:51 عصر
سلام من تو VB6 يه برنامه راجع به اينئنوشته بودم كه تو اون با تابع gdi32. dll پيكسلها رو ميخوندم كد رو ميذارم بعدش از اين توابع استفاده ميكردم و پيكسلها رو ميخوندم و نويز تصويرو كاهش ميدادم حالا نميدونم به در شما بخوره يا نه





Public Type typPoint


X As Long


Y As Long


End Type





Public Declare Function_


_ GetPixel Lib "gdi32" (ByVal hDC As Long,


ByVal X As Long, ByVal Y As Long) As Long





Public Declare Sub_


SetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, _
ByVal Y As Long, ByVal crColor) As Long


Public Type typPoint


X As Long


Y As Long


End Type





Public Declare Function_


_ GetPixel Lib "gdi32" (ByVal hDC As Long,


ByVal X As Long, ByVal Y As Long) As Long





Public Declare Sub_


SetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, _
ByVal Y As Long, ByVal crColor) As Long

shask00l
یک شنبه 21 شهریور 1389, 00:43 صبح
تبديل مستقيم به G-Code اگر باشه كه عاليه!:تشویق:
سرچ كردم. اما نتونستم چيز زيادي پيدا كنم. .................

یه سرچ زدم اینا اومد بالا .

http://www.cnczone.com/forums/showthread.php?t=63198
http://www.woodweb.com/cgi-bin/forums/cad.pl?read=659140
http://www.cnczone.com/modules.php?name=Sections&op=viewarticle&id=2

این لینک آخری چیز جالبیه .

من در این زمینه خودم کاری انجام ندادم ولی قدیما با یکی از دوستان این کاره بحث میکردیم . همچین چیزی شنیده بودم

xminxmin
یک شنبه 21 شهریور 1389, 01:41 صبح
ممنون
اکثر این ها رو دیده بودم. اینا نرم افزار هستند. اصل حرف اینجاست! نرم افزار خیلی زیاده!
متاسفانه اینها سورس نیستند!

shask00l
یک شنبه 21 شهریور 1389, 22:55 عصر
قراره به جایی بفروشی .؟ اگه اینجوریه دنبال برنامه ای بگرد که از خط فرمان و پارامتر و این چیزا پشتیبانی کنه .

xminxmin
دوشنبه 22 شهریور 1389, 00:01 صبح
نه. بحث فروش به جایی نیست. یه پروژه یزگ میکروکنترلره. برای دستگاه CNC

این یک بخش از اونه که می خوان به من محول کنند. من هم گفتم بهتون جواب می دم.

این G-CODE که نرم افزار میسازه خوراک میکرو هست یه جورایی. بعد هم در دستگاه هضم میشه. و در آخر اجرا !