نمایش نتایج 1 تا 12 از 12

نام تاپیک: الگوریتم رنگ کدن نواحی - گرافیک کامپیوتری

  1. #1

    Tick الگوریتم رنگ کدن نواحی - گرافیک کامپیوتری

    سلام

    برای پروژه درس گرافیک 1 یه برنامه Paint نوشتم و یرای رنگ کردن نواحی از الگورینم نقطه میانی 4point استفاده کردم، اما این الگوریتم خیلی کنده و مثلا باری رنگ کردن یه مستطیل 600*400 چیزی حدود 25 الی 30 ثانیه زمان می بره !

    میخواستم ببینم الگوریتم سریع تری برای اینکار وجود داره یا نه ؟ اگه هست ممنون میشم اون الگوریتم رو معرفی کنین...

    با تشکر.

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    من اطلاعاتی در مورد 4Point ندارم، اگه امکان داره در مورد آن کمی توضیح دهید.(البته اگه منظور تئوری 4 رنگ نباشه)
    در مورد مشکل شما، چرا از الگوریتم Flood Fill استفاده نمی کنید؟
    آخرین ویرایش به وسیله whitehat : سه شنبه 30 بهمن 1386 در 13:59 عصر دلیل: افزودن لینک
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    استان فارس
    پست
    1,054
    تو برنامه paint.net رو نگاه کن . نمی دونم از این چیزی که آقای وایت هت گفتند استفاده کرده یا نه اما سرعت خوبی داره

  4. #4
    این الگوریتم برای رنگ کردن نواحی بسته بکار میره و کارش اینه که نقطه ای رو میگیره و اونو رنگ میکنه و داخل یک stack میریزه بعد چهار نقطه بالا و پایین و چپ و راست اونو گرفته و با رنگ پس زمینه ای که از نقطه اصلی گرفته مقایسه میکنه و در صورت تطابق اونا رو رنگ کرده و به stack میریزه و در مرحله بعد یه نقطه رو pop کرده و این عمل رو تا خالی شدن پشته ادامه میده.

    این توضیح الگوریتم بود اما وقتی من توی #C اونو پیاده کردم خیلی کند رنگ میزنه !!! میشه در مورد الگوریتم flood fill راهنماییم کنید ؟!!

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1385
    محل زندگی
    تهران
    پست
    117
    سلام
    این کاری که شما میکنی همون flood fill هستش.
    یه سوال! هر نقطه رو که رنگ میزنی روی صفحه نشونش میدی یا وقتی کار رنگ زدن تموم شد کل تصویر رو refresh میکنی؟ اگه جواب مثبته با استفاده از رنگ آمیزی بافر در حافظه و نمایش اون بعد از اتمام سرعتت میتونه بیشتر بشه.

  6. #6
    نقل قول نوشته شده توسط saeid5977 مشاهده تاپیک
    سلام
    این کاری که شما میکنی همون flood fill هستش.
    یه سوال! هر نقطه رو که رنگ میزنی روی صفحه نشونش میدی یا وقتی کار رنگ زدن تموم شد کل تصویر رو refresh میکنی؟ اگه جواب مثبته با استفاده از رنگ آمیزی بافر در حافظه و نمایش اون بعد از اتمام سرعتت میتونه بیشتر بشه.
    سلام
    اوت ممنون از راهنماییتون
    من اول bitmapی که در اختیار دارم رو رنگ میکنم بعد در انتهای الگوریتم کل صفحه رو refresh میکنم. اما بازهم وحشتناک برنامم برای رنگ زدن کنده !!!

  7. #7
    کاربر دائمی آواتار بمب منطقی
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    شمال-ایران
    پست
    1,049
    این الگوریتم باید هم کند باشه.چون نقاط زیادی رو مکررا چک میکنه(در صورتی که قبلا چک شده و در نتیجه بررسی ،رنگ شده و یا رنگ نشده) من قبلا این الگوریتم رو استفاده کردم.
    برای اینکه از تکرار چک کردن نقاط جلوگیری بشه باید چک کردن نقاط رو بصورت سطری انجام بدی.یعنی نقاط بالائی و پائینی نقطه ای که برای شروع رنگ آمیزی،انتخاب شده رو باید به صورت سطری چک کنی(همزمان در دو جهت بالا و پائین و در هر سطر در دو جهت مخالف).البته به همین راحتی ها هم نیست.در مورد اشکال نا منظم قضیه خیلی سختر میشه و تکرار چک کردن سطر هم وجود داره. توضیحش از حوصله من یکی خارجه.
    البته در الگوریتم (flood fill(4point اگه از یک گراف برای نگه داشتن سابقه ،به همراه الگوریتم Graph-search (برای حذف تکرار) استفاده کنی میتونی سرعت رو خیلی افزایش بدی.
    در کل:
    در اشکال منظم -> رنگ آمیزی سطری دو جهته
    در اشکال نا منظم -> رنگ آمیزی به روش flood fill به همراه graph و استفاده از الگوریتم graph-search

  8. #8
    سلام
    ممنون از راهنماییتون.
    یه الگوریتم دیگه که بهش برخوردم scanline بود که کارش به این صورت بود که سطر به سطر یک خط افقی رسم میکرد و با محاسبه نقاط تلاقی با شکل مورد نظر و تعداد اونها ناحیه مورد نظر رو رنگ میکرد.

    البته نتونستم اونو پیاده سازی کنم !!!
    بازم ممنون از راهنمایی هایی که داشتین ...

  9. #9
    کاربر دائمی آواتار بمب منطقی
    تاریخ عضویت
    مرداد 1382
    محل زندگی
    شمال-ایران
    پست
    1,049
    یه الگوریتم دیگه که بهش برخوردم scanline بود
    اینی که شما فرمودین دقیقا همون رنگ آمیزی سطری دو جهته هست.

    موفق باشی

  10. #10

    نقل قول: الگوریتم رنگ کدن نواحی - گرافیک کامپیوتری

    الگوريتم scanline براي اينكه شكل هاي غير محدب را هم رنگ آمیزی كنى بايد چه جوري نوشته بشود؟

  11. #11

    نقل قول: الگوریتم رنگ کدن نواحی - گرافیک کامپیوتری

    سلام ....سوالي داشتم...كتاب يا pdf هست كه انواع الگلوريتم هاي گرافيك را آموزش بده؟ مثل الگوريتم رنگ كردن و ...

  12. #12

    نقل قول: الگوریتم رنگ کدن نواحی - گرافیک کامپیوتری

    درسته دیگه دیر شده اما شاید به درد بقیه دوستان بخوره.

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

    COMPUTER GRAPHICS C version: DONALD HEARN - M.PAULINE BAKER

    ای بوکش رو دارم، حتماً هست، اگه جستجو کنید حتماً پیداش میکنید.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •