Parsi Coders

نسخه‌ی کامل: همه چیز درباره پردازش تصاویر
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
صفحات: 1 2 3 4
در این تایپک میخواهم تمام مباحث در مورد پردازش تصاویر را روش بحث کنم همچنین سورس کدهای هم به زودی در مورد پردازش تصاویر پیوست خواهم کرد.
[عکس: Halftone_example_black_and_white.png]
پردازش تصاویر امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته می‌شود که شاخه‌ای از دانش رایانه است که با پردازش سیگنال دیجیتال که نماینده تصاویر برداشته شده با دوربین دیجیتال یا پویش شده توسط پویشگر هستند سر و کار دارد.

پردازش تصاویر دارای دو شاخه عمدهٔ بهبود تصاویر و بینایی ماشین است. بهبود تصاویر دربرگیرندهٔ روشهایی چون استفاده از فیلتر محوکننده و افزایش تضاد برای بهتر کردن کیفیت دیدارمتن ضخیمی تصاویر و اطمینان از نمایش درست آنها در محیط مقصد(مانند چاپگر یا نمایشگر رایانه)است، در حالی که بینایی ماشین به روشهایی می‌پردازد که به کمک آنها می‌توان معنی و محتوای تصاویر را درک کرد تا از آنها در کارهایی چون رباتیک و محور تصاویر استفاده شود.

در معنای خاص آن پردازش تصویر عبارتست از هر نوع پردازش سیگنال که ورودی یک تصویر است مثل عکس یا صحنه‌ای از یک فیلم. خروجی پردازشگر تصویر می‌تواند یک تصویر یا یک مجموعه از نشانهای ویژه یا متغیرهای مربوط به تصویر باشد. اغلب تکنیک‌های پردازش تصویر شامل برخورد با تصویر به عنوان یک سیگنال دو بعدی و بکاربستن تکنیک‌های استاندارد پردازش سیگنال روی آنها می‌شود. پردازش تصویر اغلب به پردازش دیجیتالی تصویر اشاره می‌کند ولی پردازش نوری و آنالوگ تصویر هم وجود دارند. این مقاله در مورد تکنیک‌های کلی است که برای همه آنها به کار می‌رود
عملیات اصلی در پردازش تصویر
1.تبدیلات هندسی: همانند تغییر اندازه، چرخش و...
2.رنگ: همانند تغییر روشنایی، وضوح و یا تغییر فضای رنگ
3.ترکیب تصاویر: ترکیب دو و یا چند تصویر
4.فشرده سازی تصویر: کاهش حجم تصویر
5.قطعه بندی تصویر: تجزیهٔ تصویر به قطعات با معنی
6.تفاوت تصاویر: به دست آوردن تفاوت‌های تصویر
7.میانگین گیری: به دست آوردن تصویر میانگین از دو تصویر
فشرده‌سازی تصاویر
مقالهٔ اصلی: فشرده‌سازی تصاویر

برای ذخیره‌سازی تصاویر باید حجم اطلاعات را تا جایی که ممکن است کاهش داد و اساس تمام روش‌های فشرده‌سازی کنار گذاردن بخش‌هایی از اطلاعات و داده‌ها است.

ضریب یا نسبت فشرده‌سازی است که میزان و در صد کنار گذاشتن اطلاعات را مشخص می‌کند. این روش ذخیره‌سازی و انتقال اطلاعات را آسان‌تر می‌کند و پهنای‌باند و فرکانس مورد نیاز کاهش می‌یابد.

امروزه روش‌هایی متعدد و پیشرفته برای فشرده‌سازی وجود دارد. فشرده‌سازی تصویر از این اصل مهم تبعیت می‌کند که چشم انسان حد فاصل دو عنصر تصویری نزدیک به هم را یکسان دیده و تمایز آنها را نمی‌تواند تشخیص دهد. همچنین اثر نور و تصویر برای مدت زمان معینی در چشم باقی مانده و از بین نمی‌رود که این ویژگی در ساخت تصاویر متحرک مورد توجه بوده‌است.
روش JPEG

نام این فرمت در واقع مخفف کلمات JOINT PHOTOGRAPHIC EXPERT GROUP است. از این روش در فشرده‌سازی عکس و تصاویر گرافیکی ساکن استفاده می‌شود JPEG اولین و ساده‌ترین روش در فشرده‌سازی تصویر است به همین دلیل در ابتدا سعی شد برای فشرده‌سازی تصاویر متحرک مورد استفاده قرار گیرد. برای این منظور تصاویر به صورت فریم به فریم مانند عکس فشرده می‌شدند وبا ابداع روش MOTION JPEG برای ارتباط دادن این عکس‌ها به هم تلاش شد که با مشکلاتی همراه بود.
روش MPEG

نام این فرمت مخفف عبارت MOVING PICTURE EXPERT GROUP است. این روش در ابتدای سال ۹۰ ابداع شد و در آن اطلاعات تصویر با سرعت حدود ۵/۱ مگابیت بر ثانیه انتقال پیدا می‌کرد که در تهیه تصاویر ویدئویی استفاده می‌شد. با این روش امکان ذخیره حدود ۶۵۰ مگابایت اطلاعات معادل حدود ۷۰ دقیقه تصویر متحرک در یک دیسک به وجود آمد. در MPEG بیت‌های اطلاعات به صورت سریال ارسال می‌شوند و به همراه آنها بیت‌های کنترل و هماهنگ‌کننده نیز ارسال می‌شوند که موقعیت و نحوه قرارگیری بیت‌های اطلاعاتی را برای انتقال و ثبت اطلاعات صدا و تصویر تعیین می‌کند.
روش MP3

MP۳ نیز روشی برای فشرده سازی اطلاعات صوتی به ویژه موسیقی است که از طریق آن حجم زیادی از اطلاعات صوتی در فضای نسبتاً کوچکی ذخیره می‌شود.
روش MPEG۲

در روش MPEG۲ از ضریب فشرده‌سازی بالاتری استفاده می‌شود و امکان دسترسی به اطلاعات ۳ تا ۱۵ مگابیت بر ثانیه‌است از این روش در دی‌وی‌دی‌های امروزی استفاده می‌شود در اینجا نیز هر فریم تصویری شامل چندین سطر از اطلاعات دیجیتالی است.
روش MPEG ۴

از این روش برای تجهیزاتی که با انتقال سریع یا کند اطلاعات سرو کار دارند استفاده می‌شود. این روش توانایی جبران خطا و ارائه تصویر با کیفیت بالا را دارد. مسئله خطا و جبران آن در مورد تلفن‌های همراه و کامپیوترهای خانگی و لپ‌تاپ‌ها و شبکه‌ها از اهمیت زیادی برخوردار است. در شبکه‌های کامپیوتری باید تصویر برای کاربرانی که از مودم‌های سریع یا کند استفاده می‌کنند به خوبی نمایش داده شود، در چنین حالتی روش MPEG ۴ مناسب است. از این روش در دوربین‌های تلویزیونی نیز استفاده می‌شود. ایده اصلی این روش تقسیم یک فریم ویدئویی به یک یا چند موضوع است که مطابق قاعده خاصی کنار هم قرار می‌گیرند مانند درختی که از روی برگ‌های آن بتوان به شاخه تنه یا ریشه آن دست یافت. هر برگ می‌تواند شامل یک موضوع صوتی یا تصویری باشد. هر کدام از این اجزا به صورت مجزا و جداگانه قابل کپی و یا انتقال هستند. این تکنیک را با آموزش زبان می‌توان مقایسه کرد.

همان‌طوری‌که در آموزش زبان کلمات به صورت مجزا و جداگانه قرار داده می‌شوند و ما با مرتب کردن آن جملات خاصی می‌سازیم و می‌توانیم در چند جمله، کلمات مشترک را فقط یک‌بار بنویسیم و هنگام مرتب کردن آن‌ها به کلمات مشترک رجوع کنیم، در اینجا هم هر یک از این اجزا یک موضوع خاص را مشخص می‌کند و ما می‌توانیم اجزا مشترک را فقط یک‌بار به کار ببریم و هنگام ساختن موضوع به آنها رجوع کنیم. هر یک از موضوعات هم می‌توانند با موضوعات دیگر ترکیب و مجموعه جدیدی را بوجود آورند. این مسئله باعث انعطاف‌پذیری و کاربرد فراوان روش MPEG۴ می‌شود. برای مثال به صحنه بازی تنیس توجه کنید. در یک بازی تنیس می‌توان صحنه را به دو موضوع بازیکن و زمین بازی تقسیم کرد زمین بازی همواره ثابت است بنا بر این بعنوان یک موضوع ثابت همواره تکرار می‌شود ولی بازیکن همواره در حال حرکت است و چندین موضوع مختلف خواهد بود. این مسئله سبب کاهش پهنای باند اشغالی توسط تصاویر دیجیتالی می‌شود. توجه داشته باشید که علاوه بر سیگنال‌های مربوط به این موضوعات سیگنال‌های هماهنگ کننده‌ای هم وجود دارند که نحوه ترکیب و قرارگیری صحیح موضوعات را مشخص می‌کند.
تصاویر رقمی(دیجیتالی)
تصاویر سنجش شده که از تعداد زیادی مربعات کوچک(پیکسل) تشکیل شده‌اند. هر پیکسل دارای یک شماره رقمی(Digital Number) می‌باشد که بیانگر مقدار روشنایی آن پیکسل است. به این نوع تصاویر، تصاویر رستری هم می‌گویند. تصاویر رستری دارای سطر و ستون میاشند.
مقادیر پیکسلها
مقدار انرژی مغناطیسی که یک تصویر رقومی به هنگام تصویر برداری کسب می‌کند، رقم‌های دوتایی(Digit binary) یا بیت ها(Bits) را تشکیل می‌دهند که از قوه صفر تا ۲ ارزش گذاری شده‌است. هر بیت، توان یک به قوه ۲ (۱بیت=۲۱)می‌باشد. حداکثر تعداد روشنایی بستگی به تعداد بیت‌ها دارد. بنابراین ۸ بیت یعنی ۲۵۶ شماره رقومی که دامنه‌ای از ۰ تا ۲۵۵ دارد. به همین دلیل است که وقتی شما تصویر رستری از گیرنده خاصی مانند TM را وارد [[نرم افزار]]ی می‌کنید تغییرات میزان روشنایی را بین ۰ تا ۲۵۵ نشان می‌دهد.
دقت تصویر
دقت تصویر بستگی به شماره پیکسل‌ها دارد. با یک تصویر ۲ بیتی، حداکثر دامنه روشنایی ۲۲ یعنی ۴ می‌باشد که دامنه آن از ۰ تا ۳ تغییر می‌کند. در این حالت تصویر دقت (تفکیک پذیری لازم) را ندارد. تصویر ۸ بیتی حداکثر دامنه ۲۵۶ دارد و تغییرات آن بین ۰ تا ۲۵۵ است. که دقت بالاتری دارد.
کاربرد پردازش تصویر در زمینه‌های مختلف
امروزه با پیشرفت سیستمهای تصویر برداری و الگوریتمهای پردازش تصویر شاخه جدیدی در کنترل کیفیت و ابزار دقیق به وجود آمده‌است. و هر روز شاهد عرضه سیستمهای تصویری پیشرفته برای سنجش اندازه، کالیبراسیون، کنترل اتصالات مکانیکی، افزایش کیفیت تولیدو........ هستیم.
اتوماسیون صنعتی

با استفاده از تکنیکهای پردازش تصویر می‌توان دگرگونی اساسی در خطوط تولید ایجاد کرد. بسیاری از پروسه‌های صنعتی که تا چند دهه پیش پیاده سازیشان دور از انتظار بود، هم اکنون با بهرگیری از پردازش هوشمند تصاویر به مرحله عمل رسیده‌اند. از جمله منافع کاربرد پردازش تصویر به شرح زیر است.
افزایش سرعت و کیفیت تولید
کاهش ضایعات
اصلاح روند تولید
گسترش کنترل کیفیت
ماشین بینایی و پردازش تصویر در اتوماسیون صنعتی

کنترل ماشین آلات و تجهیزات صنعتی یکی از وظایف مهم در فرآیندهای تولیدی است. بکارگیری کنترل خودکار و اتوماسیون روزبه روز گسترده تر شده و رویکردهای جدید با بهره گیری از تکنولوژی‌های نو امکان رقابت در تولید را فراهم می‌سازد. لازمه افزایش کیفیت و کمیت یک محصول، استفاده از ماشین آلات پیشرفته و اتوماتیک می‌باشد. ماشین آلاتی که بیشتر مراحل کاری آنها به طور خودکار صورت گرفته و اتکای آن به عوامل انسانی کمتر باشد. امروزه استفاده از تکنولوژی ماشین بینایی و تکنیک‌های پردازش تصویر کاربرد گسترده‌ای در صنعت پیدا کرده‌است و کاربرد آن بویژه در کنترل کیفیت محصولات تولیدی، هدایت روبات و مکانیزم‌های خود هدایت شونده روز به روز گسترده تر می‌شود.

عدم اطلاع کافی مهندسین از تکنولوژی ماشین بینایی و عدم آشنایی با توجیه اقتصادی بکارگیری آن موجب شده‌است که در استفاده از این تکنولوژی تردید و در بعضی مواقع واکنش منفی وجود داشته باشد. علی رغم این موضوع، ماشین بینایی روز به روز کاربرد بیشتری پیدا کرده و روند رشد آن چشمگیر بوده‌است. عملیات پردازش تصویر در حقیقت مقایسه دو مجموعه عدد است که اگر تفاوت این دو مجموعه از یک محدوده خاص فراتر رود، از پذیرفتن محصول امتناع شده و در غیر این‌صورت محصول پذیرفته می‌شود. در زیر پروژه‌هایی که در زمینه پردازش تصاویر پیاده سازی شده‌است، توضیح داده می‌شود. این پروژه‌ها با استفاده از پردازش تصویر، شمارش و اندازه گیری اشیا، تشخیص عیوب، تشخیص ترک، دسته بندی اشیا و عملیات بیشمار دیگری را انجام می‌دهند:
1.اندازه گیری و کالیبراسیون
2.جداسازی پینهای معیوب
3.بازرسی لیبل و خواندن بارکد
4.بازرسی عیوب چوب
5.بازرسی قرص
6.بازرسی و دسته بندی زعفران
7.درجه بندی و دسته بندی کاشی
8.بازرسی میوه
9.بازرسی شماره چک
کالیبراسیون و ابزار دقیق
اندازه گیری دقیق و سنجش فواصل کوچک یکی از دغدغه‌های اصلی در صنایع حساس می‌باشد. دوربینهای با کیفیت امکان کالیبراسیون با دقت بسیار بالا در حد میکرون را فراهم آورده‌اند.
حمل و نقل
تشخیص شماره پلاک خودرو
نرم‌افزار شمارش خودروهای عبوری از عرض خیابان

بی شک یکی از مؤثرترین مولفه‌ها در مدیریت و برنامه ریزی دسترسی به آمار دقیق می‌باشد. درصورت وجود آمار دقیق و سریع می‌توان از روشهای کنترل بهینه استفاده کرد و بهره وری را افزایش داد. به عنوان مثال اگر آمار دقیقی از میزان مصرف یک محصول غذایی وجود داشته باشد با برنامه ریزی مناسب می‌توان زمینه تولید و عرضه اصولی آن را فراهم کرد. لذا احتمال نابسامانی در بازار و متضرر شدن کشاورز و مصرف کننده کاهش می‌یابد. چنان که بیان شد مهمترین فاکتور در برنامه ریزی دسترسی به آمار مناسب است اما تهیه آمار فرایند پیچیده و وقت گیر است و معمولاً هزینه زیادی را در بر دارد. به عنوان مثال به دلایلی از جمله کنترل ترافیک یا کنترل میزان روشنایی خیابان باید خودروهای عبوری از خیابان شمارش شوند. این کار اگر به صورت دستی یا انسانی انجام شود، هزینه زیادی نیاز دارد، امکان سهل انگاری انسانی نیز وجود دارد پس استفاده از یک دستگاه مناسب که توانایی شمارش خودروهای عبوری را داشته باشد تنها گزینه ممکن است. با توجه به نیاز فوق نرم‌افزاری تهیه شده‌است که با استفاده از تصاویر گرفته شده از عرض خیابان خودروهای عبوری را تشخیص می‌دهد و تعداد آنها را شمارش می‌کند. این نرم‌افزار امکان استفاده در روز یا شب را دارا می‌باشد. شمایی از این نرم‌افزار در زیر نشان داده شده‌است.
روش‌های پردازش تصویر
روشهای متعددی در پردازش تصویر بکار برده می‌شوند.[۱] برخی از آنان در زیر توضیح داده شده‌اند:
ترمیم تصویر(Image restoration)

بیشتر تصاویری که توسط ماهواره‌ها یا رادار‌ها ثبت می‌گردند، اختلالاتی در تصویر به وجود می‌آید که به دلیل خش می‌باشد. دو اختلال مهم در تصاویر چند باندی، نواری شدن (Banding) و خطوط از جا افتاده می‌باشد.
نواری شدن(باندی شدن)

اشتباهی که توسط سنسور گیرنده، در ثبت و انتقال داده‌ها روی میدهد.و یا تغییر پیکسل در بین ردیف‌ها می‌تواند باعث ایجاد چنین اشتباهی گردد

خطوط از جا افتاده

اشتباهی که در ثبت و انتقال داده‌ها روی می‌دهد و در نتیجه، یک ردیف پیکسل در عکس از بین می‌رود

بالا بردن دقت عکس

یکی از کارهای مهمی که در پردازش تصویر انجام نمگردد. بالا بردن دقت عکس به منظور دید و تفسیر چشمی دقیق تر می‌باشد.روش‌های بسیاری برای رسیدن به این هدف وجود دارد ولی مهمترین آنها، افزایش تباین(Contrast) تصویر و عملیات فیلتر کردن می‌باشد.

هیستوگرام تصویر
در هر تصویر دیجیتالی، مقادیر پیکسل‌ها بیانگر خصوصیات آن تصویر(مانند میزان روشنایی تصویر و وضوح آن) می‌باشد.هیستوگرام تصویر در حقیقت بیان گرافیکی میزان روشنایی تصویر می‌باشد. مقادیر روشنایی(برای مثال ۰-۲۵۵) در طول محور X بیان شده و میزان فراوانی هر مقدار در محور Y بیان می‌گردد.

تصویر ۸ بیتی(۰-۲۵۵) در بالا و هیستوگرام مقادیر پیکسل تصویر در پایین. محور افقی بین ۰-۲۵۵ و محور قائم، تعداد پیکسل‌ها می‌باشد
افزایش تباین از طریق کشیدن و امتداد آن

معمولا دامنه مقادیر پیکسل‌های تصاویر با هر بیتی (در اینجا مثلا ۸ بیت)، بین ۰-۲۵۵ نمی‌باشد.و مثلا بین ۴۸ تا ۱۵۳ می‌باشد. برای افزایش تباین، مقادیر پیکسل‌ها را آنقدر امتداد میدهیم تا ۴۸ به جای ۰ و ۱۵۳ به جای ۲۵۶ قرار گیرد. در نتیجه تباین وهمچنین کیفیت عکس بالا می‌رود. به این عمل کشش خطی گویند.

مقادیر پیکسل تصویر اصلی (در بالا) و تصویر کشیده شده (در پایین)
[عکس: 300px-MANGO_histogram_0001.png]
یک هیستوگرام تصویر از یک تصویر T1 فیلتر شده از یک مغز، پردازش شده توسط نرم‌افزار مانگو. ۳ قلهٔ مشهود در این نمودار ستونی متعلق به ماده سفید، ماده خاکستری، و CSF (آب نخاع) می‌باشند. دم سمت چپ متعلق به بقایای جمجمه و چربی پس از حذف به روش پردازش (فیلترینگ)بدست آمده.

[عکس: 300px-Kasraie_scalped_3d010r_cal_BET2_0001.png]
تصویری که هیستوگرام بالا از آن گرفته شده.
در مطالب بالا در پردازش تصاویر کلمه هیستوگرام دیدید که به تشریح ان میپردازم :
هیستوگرام


از ویکی‌پدیا، دانشنامهٔ آزاد


هیستوگرام تصویر نموداری است که توسط آن تعداد پیکسل هر سطح روشنایی در تصویر ورودی مشخص می‌شود.

درعکاسی به عنوان یک عملگر کاربردی مصطلح است که با این نام(برای این عملگر) چنین در بین کاربران مصطلح شده است و ارتباطی با کارکرد علمی آن ندارد.
یه سری اطلاعات هم در مورد فشرده سازی تصاویر :
درباره فشرده سازی تصویر
برای کلاس مدیریت سایت‌های خبری – کارشناسی ارشد ژورنالیسم این بار هم علی رمضانی از تیم مفاهیم زحمت تهیه این متن را برای کلاس کشیده است درباره اش در کلاس صحبت می کنیم: ” برای ذخیره سازی باید حجم اطلاعات را تا جایی که ممکن است کاهش دهیم . اساس تمام روشهای فشرده سازی کنار گذاردن برخی از اطلاعات و داده ها است . ضریب یا نسبت فشرده سازی , میزان و در صد کنار گذاشتن اطلاعات را مشخص می کند در ذخیره سازی انتقال اطلاعات آسان تر میشود و پهنای باند و فرکانسی مورد نیاز کاهش میابد . امروزه روشهای متعدد وپیشرفته زیادی برای فشرده سازی وجود دارد . فشرده سازی تصویر از این اصل مهم تبعیت می کند که چشم انسان حد فاصل دو عنصر تصویری نزدیک به هم را یکسان دیده و تمایز آنها را نمیتواند تشخیص دهد همچنین اثر نور و تصویر برای مدت زمان معینی در چشم باقی مانده و از بین نمیرود در مورد تصاویر متحرک اطلاعات از یک فریم به فریم دیگر فقط زمانی تغییر میکند که اطلاعات آن پیکسل تغییر کرده باشد یعنی اطلاعات زمینه ثابت و اطلاعات جسم متحرک به صورت مجزا ذخیره یا ارسال میشود به این ترتیب اطلاعات زیادی که ثابت هستند فقط در یک فریم ثبت میشوند و در فریم های بعدی از آن استفاده می شود . روش JPEG مخفف کلمات : JOINT PHOTOGRAPHIC EXPERT GROUP است از این روش در فشرده سازی عکس و تصاویر گرافیکی ساکن استفاده می شود JPEG اولین و ساده ترین روش در فشرده سازی تصویر است به همین دلیل در ابتدا سعی شد برای فشرده سازی تصاویر متحرک مورد استفاده قرار گیرد برای این منظور تصاویر به صورت فریم فریم مانند عکس فشرده می شدند وبا ابداع روش MOTION JPEG برای ارتباط دادن این عکسها به هم تلاش شد که با مشکلاتی همراه بود . روش MPEG MOVING PICTURE EXOERT GROUP این روش در ابتدای سال ۹۰ ابداع شد در این روش اطلاعات تصویر با سرعت حدود ۵/۱ مگا بیت بر ثانیه انتقال پیدا میکرد که در تهیه تصاویر ویدئویی وی سی دی استفاده می شد . با این روش امکان ذخیره حدود ۶۵۰ مگا بایت اطلاعات معادل حدود ۷۰ دقیقه تصویر متحرک در یک دیسک وجود دارد .در MPEG بیتهای اطلاعات به صورت سریال ارسال میشوند و به همراه آنها بیتهای کنترل و هماهنگ کننده نیز ارسال میشوند که موقعیت و نحوه قرار گیری بیتهای اطلاعاتی را برای انتقال و ثبت اطلاعات صدا و تصویر تعیین میکند . MP3 نیز روشی برای فشرده سازی اطلاعات صوتی بویژه موسیقی است که از طریق آن حجم زیادی از اطلاعات صوتی در فضای نسبتا کوچکی ذخیره می شود .در روش MPEG2 از ضریب فشرده سازی بالاتری استفاده میشود و امکان دسترسی به اطلاعات ۳ تا ۱۵ مگا بیت بر ثانیه است از این روش در دی وی دی های امروزی استفاده می شود در اینجا نیز هر فریم تصویری شامل چندین سطر از اطلاعات دیجیتالی است . روش MPEG 4 از این روش برای تجهیزاتی که با انتقال سریع یا کند اطلاعات سرو کار دارند استفاده می شود این روش توانایی جبران خطا و ارائه تصویر با کیفیت بالا را دارد مسئله خطا و جبران آن در مورد تلفن های همراه و کامپیوتر های خانگی و لپ تاپ ها و شبکه ها از اهمیت زیادی بر خوردار است در شبکه های کامپیوتری باید تصویر برای کاربرانی که از مودمهای سریع یا کند استفاده می کنند به خوبی نمایش داده شود در چنین حالتی روش MPEG 4 مناسب است از این روش در دوربینهای تلویزیونی نیز استفاده می شود . ایده اصلی این روش تقسیم یک فریم ویدئویی به یک یا چند موضوع است که مطابق قاعده خاصی کنار هم قرار می گیرند مانند درختی که از روی برگهای آن بتوان به شاخه تنه یا ریشه آن دست یافت .هر برگ می تواند شامل یک موضوع صوتی یا تصویری باشد.هر کدام از این اجزا به صورت مجزا و جداگانه قابل کپی و یا انتقال هستند.این تکنیک را با آموزش زبان می تونیم مقایسه کنیم.همانطوریکه در آموزش زبان کلمات به صورت مجزا وجدا گانه قرار داده می شوند و ما با مرتب کردن آن جملات خاصی می سازیم و می توانیم در چند جمله، کلمات مشترک را فقط یکبار بنویسیم و هنگام مرتب کردن آن ها به کلمات مشترک رجوع کنیم در اینجا هم هریک از این اجزا یک موضوع خاص را مشخص می کند و ما می توانیم اجزا مشترک را فقط یکبار به کار ببریم و هنگام ساختن موضوع به آنها رجوع کنیم. هر یک از موضوعات هم می توانند با موضوعات دیگر ترکیب و مجموعه جدیدی را بوجود آورند.این مسئله باعث انعطاف پذیری و کاربرد فراوان روش MPEG4می شود.برای مثال به صحنه بازی تنیس توجه کنید.در یک بازی تنیس می توان صحنه را به دو موضوع بازیکن و زمین بازی تقسیم کرد زمین بازی همواره ثابت است بنا بر این بعنوان یک موضوع ثابت همواره تکرار می شود ولی بازیکن همواره در حال حرکت است و چندین موضوع مختلف خواهد بود. این مسئله سبب کاهش پهنای باند اشغالی توسط تصاویر دیجیتالی میشود. توجه داشته باشید که علاوه بر سیگنال های مربوط به این موضوعات سیگنال های هماهنگ کننده ای هم وجود دارند که نحو ه ترکیب و قرار گیری صحیح موضوعات را مشخص می کند.” کد هافمن کد هافمن یکی از روشهای فشرده سازی اطلاعات است که بطور گسترده مورد استفاده قرار میگیرد. این روش میتواند بین ۲۰% تا ۹۰% اطلاعات را فشرده کند. بطور خیلی خلاصه میتوان گفت که در این روش برای کاراکترهایی که تعداد تکرار آنها در فایل بیشتر است، کد کوتاه‌تری در نظر گرفته میشود و برای آنهایی که کمتر تکرار شده‌اند کدی طولانی‌تر. الگریتمش تو همه کتابهای طراحی الگریتم هست. کد برنامه با VB.Net نوشته شده.
منبع :
http://fathabad88.blogfa.com/post-244.aspx
بعضی از مطالب رو از سایت aisthinktank میگیرم با اجازه به مباحث دیگر ادامه میدهیم.
[عکس: skeleton.jpg]

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

در حالت کلی الگوریتم های استخراج اسکلت الگو بر پایه دو استراتژی مختلف هستند.



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

تعاریف اولیه :
همسایه های هشتگانه پیسکل P1 را در نظر بگیرید :
[عکس: 8neigh.JPG]
هدف این است که در مورد حذف پیکسل P1 یا ماندن آن به عنوان یک پیکسل بر روی اسکلت تصمیم بگیریم. برای این منظور همسایه های هشتگانه آن را در جهت عقربه های ساعت مرتب کرده و دو تابع زیر را برای P1 تعریف می کنیم :
• تابع B: تعداد همسایه های غیرصفر P1 را برمی گرداند.
• تابع A : تعداد الگوهای 1،0 در لیست P2,P3,P4,P5,P6,P7,P8,P9,P2 را بر می گرداند. الگوی 0,1 بدین معنی است که با در نظر گرفتن دو همسایه پشت سرهم مثل P6 و P7، مقدار P6 صفر بوده و P7 مقدار 1 داشته باشد. به عنوان مثال :
[عکس: skeletonfunctions.JPG]
الگوریتم اسکلت بندی :
الگوریتم Hilditch از یک پنجره 3*3 استفاده کرده و تازمانی تغییری در تصویر به وجود آید، به طور مداوم همه پیکسل های تصویر را بررسی می کند و به ازای هر پیکسل در صورتی که چهار شرط زیر برقرار شود، پیکسل جاری از تصویر حذف می گردد :
[عکس: skeletonConstraints.jpg]
شبه کد زیر نحوه اعمال این الگوریتم را نشان می دهد :
1. تازمانی که تغییر دیگری حاصل نشود :
a. کل تصویر پیمایش شده و پیکسل هایی که هر چهار شرط فوق برای آنها صادق باشد کاندیدای حذف شدن می شوند.
b. پیکسل های کاندیدای حذف شدن ، از تصویر حذف می شوند

تتوجه داشته باشید که الگوریتم Hilditch الگوریتم کاملی نمی باشد چرا که بر روی برخی از انواع الگوها به درستی عمل نمی کند. به عنوان مثال الگوریتم Hilditch باعث ساییده شدن کامل الگوهای زیر می شود :
[عکس: skeletonPattern.JPG]
در زیر اسکلت استخراج شده برای تعدادی تصویر با استفاده از الگوریتم Hilditch نشان داده شده است :/tr>
[عکس: skeletondigit3.JPG]
[عکس: skeletonFinger.JPG]

پردازش تصویر در MATLAB
استخراج اسکلت تصویر در MATLAB با استفاده از تابع bwmorph انجام می پذیرد.




کد:
>> BW1 = imread('circbw.tif');
>> BW2 = bwmorph(BW1,'skel',Inf);
>> imshow(BW1),figure, imshow(BW2)
تصویر دیجیتالی چیست ؟
[عکس: boat.jpg]

یک تصویر را می توان توسط تابع دوبعدی f(x,y) نشان داد که در آن X و Y را مختصات مکانی و مقدار f در هر نقطه را شدت روشنایی تصویر درآن نقطه می نامند. اصطلاح سطح خاکستری نیز به شدت روشنایی تصاویر مونوکروم اطلاق میشود . تصاویر رنگی نیز از تعدادی تصویر دوبعدی تشکیل می شود. زمانی که مقادیر X و Y و مقدار f(x,y) با مقادیر گسسته و محدود بیان شوند ، تصویر را یک تصویر دیجیتالی می نامند. دیجیتال کردن مقادیر X و Y را Sampling و دیجیتال کردن مقدار f(x,y) را quantization گویند. برای نمایش یک تصویر M * N از یک آرایه دو بعدی ( ماتریس) که M سطر و N ستون دارد استفاده می کنیم .



مقدار هر عنصر از آرایه نشان دهنده شدت روشنایی تصویر در آن نقطه است. هر عنصر آرایه یک مقدار 8 بیتی است که می تواند مقداری بین 0 و 255 داشته باشد. مقدار صفر نشان دهنده رنگ تیره ( سیاه ) و مقدار 255 نشان دهنده رنگ روشن ( سفید ) است.
به عنوان مثال تصویر روبرو که سایز آن 288 * 265 است از یک ماتریس که دارای 288 سطر و 265 ستون است برای نمایش تصویر استفاده می کند . هر پیکسل از این تصویر نیز مقداری بین 0 و 255 دارد . نقاط روشن مقادیری نزدیک به 255 و نقاط تیره مقادیر نزدیک به 0 دارد. همه توابع پردازش تصویر از این مقادیر استفاده کرده و اعمال لازم را بر روی تصویر انجام می دهند.






پردازش تصویر در MATLAB :
خواندن تصویر در محیط MATLAB با استفاده از تابع imread و نمایش آن توسط تابع imshow انجام می پذیرد. به عنوان مثال دستور زیر تصویر rice.png را خوانده و ماتریس مربوط به تصویر را در اختیار ما قرار می دهد(در مثال زیر این ماتریس با نام im مشخص شده است). مقدار هر عنصر در این ماتریس شدت روشنایی تصویر در آن نقطه را نشان می دهد :
کد:
>> im = imread('rice.png');
>> imshow(im);
خاکستری (Grayscale) کردن تصویر
در رایج ترین مدل رنگ گرافیک کامیوتری، رنگ ها از ترکیب سه رنگ قرمز، سبز و آبی به وجود می آیند که در مجموع 16581375 رنگ متفاوت توسط این سه مولفه می توان تولید کرد. این مدل رنگ در گرافیک کامپیوتری با نام RGB شناخته می شود. در کنار مدل رنگ RGB مدل های دیگری همچون CMYK ، HSI ، HSV و Grayscale نیز وجود دارد که هریک از آن ها به روش متفاوتی به نمایش رنگ ها می پردازند. در این بین مدل رنگ Grayscale از اهمیت ویژه ای برای ما برخوردار است. چرا که در بیشتر کاربردها نیازی به یک تصویر رنگی نمی باشد و داشتن تنها یک تصویر خاکستری کافی خواهد بود. در میان عموم ، تصویر خاکستری با نام تصویر سیاه و سفید شناخته می شود (البته استفاده از نام سیاه سفید به جای خاکستری اشتباه است و در اینجا فقط برای روشن تر شدن مطلب از این نام استفاده کرده ایم)

یک تصویر RGB متشکل از سه ماتریس است که هریک از آنها مقادیر Red ( قرمز ) ، Green ( سبز ) و Blue ( آبی ) تصویر رنگی را نگه می دارند. نمایش تصویر بر روی صفحه نمایش نیز از ترکیب مقادیر درآیه های متناظر در سه ماتریس انجام می پذیرد. همانطور که در ابتدا یادآور شدیم ، در بیشتر کاربردها نیازی به تصویر رنگی نداریم و استفاده از یک تصویر خاکستری کافی خواهد بود. یک پیکسل زمانی مقدار خاکستری خواهد داشت که مولفه های R ، G و B آن مقادیر یکسانی داشته باشند. با توجه به این تعریف، در مواردی که تصویر ورودی یک تصویر RGB است، برای Grayscale کردن آن از فرمول زیر می توانیم استفاده می کنیم :
کد:
S_R(x, y) = S_G(x, y) = S_B(x, y) = [R(x, y) + G(x, y) + B(x, y)] / 3
در این فرمول S_X مولفه های تصویر خروجی و R ، G و B هر یک به تریبب ماتریس مولفه های سبز قرمز و آبی تصویر ورودی می باشند. شبه کد زیر نحوه Grayscale کردن یک تصویر RGB با سایز M * N را نشان می دهد :
کد:
Procedure Grayscale( output , input As Bitmap )
Begin
  For I = 1 to M Do
    For J = 1 To N Do
      Temp = ( input.R( I,J ) + input.G( I,J ) + input.B( I,J ) ) / 3
      Output.R ( I,J ) = Temp
      Output.G ( I,J ) = Temp
      Output.B ( I,J ) = Temp
    End For
  End For
End
شکل زیر یک تصویر RGB را به همراه تصویر خاکستری آن نشان می دهد :
[عکس: RGB.jpg]
[عکس: Grayscale.jpg]

آنجا که مقادیر ماتریس های R , G , B پس از Grayscale کردن تصویر باهم برابر هستند ، بنابراین می توان تنها از یک ماتریس برای نشان دادن مقادیر استفاده کرد. در الگوریتم های بعدی که برای پردازش تصویر ارائه خواهند شد از تصاویر Grayscale استفاده خواهیم کرد . بنابراین عملیات نیز بر روی تنها یک ماتریس انجام خواهد پذیرفت.

پردازش تصویر در MATLAB :
برای خاکستری کردن یک تصویر RGB می توان از تابع rgb2gray استفاده کرد. به عنوان مثال تکه کد زیر یک تصویر رنگی را خوانده و آن را به تصویر خاکستری تبدیل می کند:




کد:
>> im = imread('onion.png');
>> imshow(im);
>> imGray = rgb2gray(im);
>> imshow(imGray);
صفحات: 1 2 3 4