انجام پروژهای پردازش تصویر

انجام پروژهای پردازش تصویر

انجام پروژهای پردازش تصویر

انجام پروژهای پردازش تصویر

پروژه پردازش تصویر با پایتون


پردازش تصویر با پایتون Python
23
پردازش تصویر با پایتون   

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


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

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

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

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

آموزش پردازش تصویر با پایتون
تصویر چیست؟

یک تصویر را می توان به عنوان یک تابع دو بعدی F(x,y) نشان داد که در آن x و y مختصات فضایی هستند. دامنه F در یک مقدار خاص x,y به عنوان شدت تصویر در آن نقطه شناخته می شود. اگر x، y و مقدار دامنه محدود باشد، آن را تصویر دیجیتال می نامیم. آرایه ای از پیکسل ها است که در ستون ها و ردیف ها مرتب شده اند. پیکسل ها عناصر یک تصویر هستند که حاوی اطلاعاتی درباره شدت و رنگ هستند. یک تصویر همچنین می تواند به صورت سه بعدی نمایش داده شود که در آن x، y و z به مختصات فضایی تبدیل می شوند. پیکسل ها در قالب یک ماتریس مرتب شده اند. این به عنوان یک تصویر RGB شناخته می شود.

انواع مختلفی از تصاویر وجود دارد:

تصویر RGB: شامل سه لایه تصویر دو بعدی است که این لایه ها، همان کانال های قرمز، سبز و آبی هستند.

تصویر در مقیاس خاکستری: این تصاویر دارای سایه های سیاه و سفید هستند و فقط یک کانال دارند.
الگوریتم های کلاسیک پردازش تصویر
1. پردازش تصویر مورفولوژیکی

پردازش تصویر مورفولوژیکی (Morphological Image Processing) سعی در حذف نواقص از تصاویر باینری دارد، زیرا مناطق باینری تولید شده توسط آستانه ساده می توانند توسط نویز تحریف شوند. همچنین به صاف کردن تصویر با استفاده از عملیات باز و بسته کردن کمک می کند. عملیات مورفولوژیکی را می توان به تصاویر خاکستری مرتبط کرد.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


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

بهتر است دو عملیات اساسی پردازش تصویر مورفولوژیکی، Dilation و Erosion را ببینیم:

    عملیات Dilation: پیکسل ها را به مرزهای جسم در یک تصویر اضافه می کند.
    عملیات Erosion: پیکسل ها را از مرزهای شی حذف می کند.

تعداد پیکسل های حذف شده یا اضافه شده به تصویر اصلی به اندازه عنصر ساختار بستگی دارد.

در این مرحله ممکن است فکر کنید “عنصر ساختاری چیست؟” بگذار توضیح بدهم:

عنصر ساختاری ماتریسی است که فقط از 0 و 1 تشکیل شده است که می تواند هر شکل و اندازه دلخواه داشته باشد. در تمام مکان‌های ممکن در تصویر قرار گرفته و با همسایگی پیکسل‌های مربوطه مقایسه می‌شود.
2. پردازش تصویر گاوسی (Gaussian)

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

تابع گاوسی مانند مثال زیر است:

تابع گاوسی

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

تبدیل فوریه یک تصویر را به اجزای سینوس و کسینوس تجزیه می کند. این برنامه چندین برنامه مانند بازسازی تصویر، فشرده سازی تصویر یا فیلتر کردن تصویر دارد. از آنجایی که ما در مورد تصاویر صحبت می کنیم، تبدیل فوریه گسسته را در نظر خواهیم گرفت. بیایید یک سینوسی را در نظر بگیریم، از سه چیز تشکیل شده است:

    بزرگی – مربوط به کنتراست
    فرکانس فضایی – مربوط به روشنایی
    فاز – مربوط به اطلاعات رنگ

تصویر در حوزه فرکانس به صورت زیر است:

تصویر در حوزه فرکانس
4. Edge Detection در پردازش تصویر

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

در صورت تشخیص نویز در تصویر در حالی که تغییرات سطوح خاکستری را تشخیص می دهد، می تواند به سرعت واکنش نشان دهد. لبه ها به عنوان ماکزیمم محلی گرادیان تعریف می شوند. رایج ترین الگوریتم تشخیص لبه، الگوریتم تشخیص لبه سوبل است. اپراتور تشخیص سوبل از هسته های کانولوشنال 3*3 تشکیل شده است. یک هسته ساده Gx و یک هسته 90 درجه چرخش Gy. اندازه گیری های جداگانه با اعمال هر دو هسته به طور جداگانه روی تصویر انجام می شود.
5. پردازش تصویر موجک

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

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


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

پردازش تصویر با پایتون چیست

    لایه ورودی
    لایه پنهان
    لایه خروجی

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

اساس کار  پردازش تصویر با پایتون چگونه است؟ (بر اساس شبکه عصبی) :

    بیایید یک تصویر را در نظر بگیریم، هر پیکسل به عنوان ورودی به هر نورون لایه اول تغذیه می شود، نورون های یک لایه از طریق کانال ها به نورون های لایه بعدی متصل می شوند.
    به هر یک از این کانال ها یک مقدار عددی به نام وزن اختصاص داده می شود.
    ورودی ها در وزن های مربوطه ضرب می شوند و این مجموع وزنی سپس به عنوان ورودی به لایه های پنهان داده می شود.
    خروجی از لایه های پنهان از طریق یک تابع فعال سازی منتقل می شود که تعیین می کند آیا نورون خاص فعال می شود یا خیر.
    نورون های فعال شده، داده ها را به لایه های پنهان بعدی منتقل می کنند. به این ترتیب داده ها از طریق شبکه منتشر می شوند که به آن انتشار به جلو می گویند.
    در لایه خروجی، نورونی با بالاترین مقدار، خروجی را پیش بینی می کند. این خروجی ها مقادیر احتمال هستند.
    خروجی پیش بینی شده با خروجی واقعی مقایسه می شود تا خطا بدست آید. سپس این اطلاعات از طریق شبکه بازگردانده می شود، این فرآیند به عنوان Backpropagation شناخته می شود.
    بر اساس این اطلاعات، وزن ها تنظیم می شوند. این چرخه انتشار به جلو و عقب چندین بار روی چندین ورودی انجام می شود تا زمانی که شبکه در اکثر موارد خروجی را به درستی پیش بینی کند.
    این به فرآیند آموزش شبکه عصبی پایان می دهد. زمان صرف شده برای آموزش شبکه عصبی ممکن است در برخی موارد زیاد شود.
    در تصویر زیر ai مجموعه ورودی‌ها، wi وزن‌ها، z خروجی و g هر تابع فعال‌سازی است.

در اینجا چند دستورالعمل برای آماده سازی داده ها برای پردازش تصویر آورده شده است.

    در پردازش تصویر با پایتون، داده های بیشتری باید به مدل داده شود تا نتایج بهتری حاصل آید.
    مجموعه داده های تصویر باید از کیفیت بالایی برخوردار باشند تا اطلاعات واضح تری به دست آورید، اما برای پردازش آنها ممکن است به شبکه های عصبی عمیق تری نیاز داشته باشید.
    در بسیاری از موارد تصاویر RGB قبل از تغذیه به شبکه عصبی به مقیاس خاکستری تبدیل می شوند.

ابزار های پردازش تصویر در پایتون

مقاله پردازش تصویر با پایتون
1. OpenCV

مخفف عبارت Open Source Computer Vision Library است. این کتابخانه شامل بیش از 2000 الگوریتم بهینه شده است که برای بینایی کامپیوتر و یادگیری ماشین مفید است. روش های مختلفی برای استفاده از opencv در پردازش تصویر وجود دارد که در زیر به چند مورد اشاره می شود:

    تبدیل تصاویر از یک فضای رنگی به فضای دیگر مانند بین BGR و HSV، BGR و خاکستری و غیره.
    انجام آستانه گذاری روی تصاویر، مانند آستانه گذاری ساده، آستانه گذاری تطبیقی و غیره.
    صاف کردن تصاویر، مانند اعمال فیلترهای سفارشی بر روی تصاویر و محو کردن تصاویر.
    انجام عملیات ریخت شناسی روی تصاویر.
    ساخت اهرام تصویری
    استخراج پیش زمینه از تصاویر با استفاده از الگوریتم GrabCut.
    تقسیم بندی تصویر با استفاده از الگوریتم حوضه آبخیز

2. Scikit-Image

Scikit-Image یک کتابخانه منبع باز است که برای پیش پردازش تصویر استفاده می شود. از یادگیری ماشین با توابع داخلی استفاده می کند و می تواند عملیات پیچیده ای را روی تصاویر تنها با چند عملکرد انجام دهد. با آرایه‌های numpy کار می‌کند و حتی برای کسانی که تازه وارد پایتون شده‌اند، یک کتابخانه نسبتاً ساده است. برخی از عملیاتی هایی که می توان با استفاده از تصویر scikit انجام داد عبارتند از:

    برای پیاده سازی عملیات آستانه گذاری از متد try_all_threshold() روی تصویر استفاده کنید. از هفت الگوریتم آستانه جهانی استفاده خواهد کرد.
    برای پیاده سازی تشخیص لبه از متد sobel() در ماژول فیلترها استفاده کنید. این روش به یک تصویر 2 بعدی در مقیاس خاکستری به عنوان ورودی نیاز دارد، بنابراین باید تصویر را به مقیاس خاکستری تبدیل کنیم.
    برای پیاده سازی هموارسازی گاوسی از روش ()gaussian در ماژول فیلترها استفاده کنید.
    برای اعمال یکسان سازی هیستوگرام، از ماژول نوردهی، برای اعمال یکسان سازی هیستوگرام معمولی بر روی تصویر اصلی، از روش ()qualize_hist و برای اعمال یکسان سازی تطبیقی، از روش ()qualize_adapthist استفاده کنید.
    برای چرخاندن تصویر از تابع rotate() در زیر ماژول تبدیل استفاده کنید.
    برای تغییر مقیاس تصویر از تابع rescale() از ماژول تبدیل استفاده کنید.
    برای اعمال عملیات مورفولوژیکی از تابع binary_erosion() و binary_dilation() در زیر ماژول مورفولوژی استفاده کنید.

3.PIL/pillow کتابخانه پردازش تصویر

PIL مخفف Python Image Library و Pillow چنگال PIL توسط Alex Clark و Contributors است. این یکی از کتابخانه های قدرتمند است. این کتابخانه پردازش تصویر طیف گسترده ای از فرمت های تصویر مانند PPM، JPEG، TIFF، GIF، PNG و BMP پشتیبانی می کند.

این فریم ورک می تواند به شما کمک کند چندین عملیات را روی تصاویر انجام دهید، مانند چرخش، تغییر اندازه، برش، مقیاس خاکستری و غیره. اجازه دهید برخی از این عملیات ها را مرور کنیم. برای انجام عملیات دستکاری ماژولی در این کتابخانه وجود دارد به نام Image.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


    برای بارگذاری یک تصویر از متد open() استفاده کنید.
    برای نمایش تصویر از متد show() استفاده کنید.
    برای شناخت فرمت فایل از ویژگی format استفاده کنید
    برای دانستن اندازه تصویر از ویژگی اندازه استفاده کنید
    برای اطلاع از فرمت پیکسلی از ویژگی mode استفاده کنید.
    برای ذخیره فایل تصویر پس از پردازش دلخواه، از روش save() استفاده کنید. Pillow فایل تصویر را با فرمت png ذخیره می کند.
    برای تغییر اندازه تصویر از متد resize() استفاده کنید که دو آرگومان به عنوان عرض و ارتفاع می گیرد.
    برای برش تصویر، از متد crop() استفاده کنید که یک آرگومان را به‌عنوان تاپل جعبه‌ای می‌گیرد که موقعیت و اندازه منطقه برش‌خورده را مشخص می‌کند.
    برای چرخاندن تصویر از متد rotate() استفاده کنید که یک آرگومان را به عنوان عدد صحیح یا عدد شناور نشان دهنده درجه چرخش می گیرد.

4. کتابخانه پردازش تصویر NumPy

با استفاده از این کتابخانه می‌توانید تکنیک‌های ساده تصویر مانند ورق زدن تصاویر، استخراج ویژگی‌ها و تجزیه و تحلیل آنها را نیز انجام دهید. تصاویر را می توان با آرایه های چند بعدی numpy نشان داد و بنابراین نوع آنها NdArrays است. یک تصویر رنگی یک آرایه بی رنگ با 3 بعد است. با برش آرایه چند بعدی می توان کانال های RGB را از هم جدا کرد.

1999 توسط گری برادسکی در اینتل آغاز شد و اولین بار در سال 2000 منتشر شد. وادیم پیزارفسکی به گری برادسکی پیوست تا بتواند تیم OpenCV نرم افزار روسی اینتل را مدیریت کند. در سال 2005، OpenCV در Stanley، وسیله نقلیه که در سال 2005 DARPA Grand Challenge برنده شد، مورد استفاده قرار گرفت. بعدها توسعه فعال خود را تحت حمایت ویلو گاراژ ادامه داد، با گری برادسکی و وادیم پیزاروفسکی رهبری این پروژه. در حال حاضر، OpenCV از بسیاری از الگوریتم های مرتبط با Computer Vision و Machine Learning پشتیبانی می کند و روز به روز گسترش می یابد.

در حال حاضر OpenCV از طیف گسترده ای از زبان های برنامه نویسی مانند C ++، Python، Java و غیره پشتیبانی می کند و در سیستم عامل های مختلف از جمله ویندوز، لینوکس، OS X، اندروید، iOS و غیره پشتیبانی می کند. همچنین رابط های مبتنی بر CUDA و OpenCL نیز برای توسعه بالا سرعت عمل GPU. OpenCV-Python API پایتون OpenCV است. این بهترین ویژگی های OpenCV C ++ API و زبان پایتون را ترکیب می کند.

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

در مقایسه با زبان های دیگر مانند C / C ++، پایتون کندتر است. اما یکی دیگر از ویژگی های مهم Python این است که می توان آن را به راحتی با C / C ++ گسترش داد. این ویژگی به ما کمک می کند تا کدهای محاسباتی فشرده را در C / C ++ بنویسیم و یک بسته بندی پایتون برای آن ایجاد کنیم تا بتوانیم از این پلاگین ها به عنوان ماژول های پایتون استفاده کنیم. این به ما دو مزیت میدهد: اول، کد ما همانند کد اصلی C / C ++ (از آنجا که C ++ C ++ واقعی در پس زمینه کار می کند) و دوم، کد بسیار ساده ای در Python است. این چگونه OpenCV-Python کار می کند، این یک بسته بندی پایتون در حین اجرای C ++ اصلی است.
امیدواریم که حالتون عالی باشه.

اگه دنبال پروژه تشخیص و شناسایی چهره هستی، خوب جایی اومدی…

در ادامه با ویژگی‌های پروژه‌ای آشنا میشین که امیدواریم ازش لذت ببرین و فوق العاده براتون مفید باشه.

این پروژه با زبان پایتون (Python) و کتابخونه OpenCV نوشته شده که به راحتی میتونین تصاویر چهره مدنظر خودتون رو بهش بدین تا اون‌ها رو یاد بگیره و در زمینه‌های مختلف مثل تشخیص هویت از روی چهره، سیستم حضور غیاب با چهره، مقالات علمی-پژوهشی، پروژه پایان‌نامه کارشناسی، پروژه درسی و … ازش استفاده کنین.

نمونه خروجی پروژه:

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

پروژه تشخیص و شناسایی چهره با OpenCV و پایتون

بعد از اتمام این مرحله، یک مدل (model) از فرآیندهای یادگیری برای شما ذخیره میشه که اگه دوباره خواستین اجرا کنین، لازم نباشه مراحل یادگیری مجددا تکرار بشه.

بعد از این مرحله کدهای تست کردن مدل آموزش دیده اجرا میشن. این پروژه برای دو حالت ۱- تشخیص روی تصاویر (Image) و ۲- تشخیص روی ویدیو یا وبکم (WebcamVideo) آماده شده که شما بسته به نیازتون میتونین یکی رو تهیه کنین.

پروژه تشخیص و شناسایی چهره با OpenCV و پایتون

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


در حالت اول برای تست فقط کافیه اسم تصویر مدنظر خودتون رو در متغیر ‘image’ وارد کنین، تا هم موقعیت چهره تشخیص داده بشه و هم کلاس مربوط به این چهره (طبق تصاویری که آموزش دادین) شناسایی بشه. در حالت دوم پروژه، یعنی تشخیص روی ویدیو یا وبکم، فقط کافیه اسم ویدیو موردنظر رو در قسمت مربوطه قرار بدین و یا برای استفاده از وبکم، عدد صفر (یا یک) را به جای اسم ویدیو وارد کنین، تا اینکه پردازش روی تصاویر دریافتی از وبکم انجام شود. خروجی پردازش نیز به صورت خودکار در یک ویدیو جداگانه برای شما ذخیره می‌شود.

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

دیتاست پروژه تشخیص و شناسایی چهره با OpenCV و پایتون
ویژگی ها:

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


    – شامل دو مرحله آموزش (train) و تست (test)
    – قابلیت تشخیص و شناسایی چندین چهره در یک تصویر
    – استفاده راحت برای تصاویر موردنظر خود
    – تغییر راحت لیبل ها (labels)
    – مناسب برای پروژه های دانشجویی و درسی
    – استفاده از زبان پایتون (Python)
    – به همراه فایل نصب آفلاین OpenCV و راهنما
    – سطح پروژه: مقدماتی و متوسط

نکته‌‌ها:

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

در صورت استقبال از این پروژه، نسخه‌های پیشرفته‌تر (با استفاده از یادگیری عمیق) نیز برای شما کاربران عزیز قرار خواهد گرفت.

امیدواریم از دانلود این پروژه لذت ببرین و مورد
انجام پروژه پردازش تصویر با پایتون

با سلام. ما یک تیم متخصص از افراد در زمینه دیتاساینس و بینایی ماشین هستم و بیشتر از 4 سال است به صورت حرفه ای و مداوم در حال انجام پروژه های گوناگون با زبان پایتون هستیم. پروژه هایی شامل Object Detection – شناسایی اشیا، طبقه بندی تصاویر ، بازطراحی معماری یولو YOLO و بهبود معماری شبکه های کانولوشن. در این مدت تلاش کردیم به صورت حرفه ای پروژه ها را انجام داده و در زمان مقرر با کیفیت خواسته شده تحویل دهیم.
بهبود عملکرد شبکه عصبی کانولوشن با استفاده از روش PSO
پروژه، پروژه پردازش تصویر

شبکه عصبی کانولوشنال (CNN) یکی از پرکاربردترین تکنیک های یادگیری عمیق است. روش های مختلفی از مدل ها برای یادگیری در شبکه های CNN پیشنهاد و بهبود یافته است. هنگام کار با CNN، تعیین هاپیرپارامترهای بهینه ضروری است. اگر تعداد …

بهبود عملکرد شبکه عصبی کانولوشن با استفاده از روش PSO ادامه مطلب »
آبان ۱۱ ۱۴۰۱
بهبود عملکرد معماری CondenseNet با روش یادگیری خودناظر
پروژه، پروژه پردازش تصویر

هدف از انجام این پروژه پیاده سازی و بهبود روش CondenseNet است که در مقاله معرفی شده است. به همین منظور در ابتدا اصل مقاله پیاده سازی شد و سپس روش جدیدی برای بهبود عملکرد آن ارایه شد. این پروژه …

ساخت برنامه شناسایی چهره در پایتون
آموزش، آموزش تصویری و گام به گام، پردازش تصویر، کاربرد در صنعت، یادگیری ماشین

در این پست ، من به شما نشان می دهم که چگونه با استفاده از پایتون برنامه شناسایی چهره خود را بسازید. ساخت برنامه ای که چهره ها را شناسایی و تشخیص دهد یک پروژه بسیار جالب و سرگرم کننده برای شروع با بینایی کامپیوتر است.
تلفیق پایتون و OpenCV، علاوه بر توانمندی های گسترده و چشم گیر خود، از یادگیری آسان و مناسبی برای فراگیری افرادی که در ابتدای مسیر پردازش تصویر و کدنویسی هستند نیز برخوردار است. آموزش این فرادرس، به صورت گام به گام با معرفی، نصب و بارگذاری تصاویر به شکل کاملا سریع و آسان آغاز شده و سپس با اعمال عملیات اصلی متداول روی تصاویر، اعمال عملیات ریاضی و تبدیلات هندسی ادامه پیدا کرده و فیلترهای کاربردی مختلف و نحوه پیاده سازی آن ها روی تصویر بیان خواهد شد. همچنین استفاده از پرکاربردترین روش ها برای تشخیص لبه، تبدیلات مورفلوژیک، هیستوگرام و اشاره چند روش تطبیق الگو که از مهم ترین بخش ها و اهداف هر برنامه پردازش تصویر است، به خوبی و آسانی تشریح خواهد شد.
آموزش مقدماتی پردازش تصویر با اپن سی وی OpenCV در پایتون Python
تعداد دانشجو
۳,۰۴۲ نفر
مدت زمان
۳ ساعت و ۱۰ دقیقه
هزینه عادی آموزش
۱۸۹,۰۰۰ تومان
در طرح تخفیف
۷۵,۶۰۰ تومان
۰۲:۰۹:۵۲:۰۷
محتوای این آموزش
(توضیحات)
تضمین کیفیت

(توضیحات)
۱۸ بازخورد (مشاهده نظرات)
محمدجواد زمانی قلعه

محمدجواد زمانی قلعه

کارشناس ارشد مهندسی الکترواپتیک

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

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

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


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

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


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

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

 
فهرست سرفصل‌ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:

    درس یکم: مقدمه و آشنایی اولیه با اعمال تغییرات روی تصویر
        مقدمه و پیش نیازها
        نصب کتابخانه OpenCV
        بارگذاری، نمایش و ذخیره تصاویر
        رسم متن و اشکال هندسی روی تصویر
        مثال تکمیلی (انجام دو پروژه کوتاه و مرتبط)
    درس دوم: انجام عملیات اصلی روی تصویر (Core Operations)
        خواندن و ویرایش پیکسل تصاویر
        کار با ناحیه تصویر (ROI)
        تفکیک و ادغام تصاویر
        رسم حاشیه روی تصویر
        ترکیب تصاویر
    درس سوم: ابزارهای ریاضی در OpenCV
        تغییر فضای رنگی
        تعیین مقدار HSV تصویر
        اعمال آستانه برای تصویر
        تقسیم بندی Otsu
        تبدیلات هندسی روی تصویر
    درس چهارم: آشنایی و اعمال انواع فیلترها بر تصاویر
        ماتریس فیلتر تصاویر
        فیلتر میانگین
        فیلتر گوسی
        فیلتر میانه
        فیلتر دوطرفه
    درس پنجم: تبدیلات مورفلوژیک
        فرسایش (Erosion)
        انبساط (Dilation)
        Opening & Closing
        Morphological Gradient و Top Hat ,Black Hat
        المان ساختاری
    درس ششم: گرادیان تصویر و تشخیص لبه
        مشتقات Sobel
        لاپلاسین
        تشخیص لبه Canny
    درس هفتم: هیستوگرام
        رسم هیستوگرام
        هموارسازی هیستوگرام
        تعادل سازی هیستوگرام تطبیقی کنتراست محدود
    درس هشتم: تطبیق الگو
        تطبیق یک شی در تصویر
        تطبیق چند شی در تصویر

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


 پردازش تصویر با پایتون — راهنمای کاربردی
آخرین به‌روزرسانی: ۳۰ مهر ۱۳۹۸
زمان مطالعه: ۱۶ دقیقه

در این مطلب، با مبحث پردازش تصویر با پایتون آشنا خواهید شد. «پردازش تصویر» (Image Processing) یکی از حوزه‌های تأثیرگذار و مهم در «هوش مصنوعی» (Artificial Intelligence) محسوب می‌شود و در حوزه‌های دیگر نظیر «بینایی کامپیوتر» (Computer Vision) و استخراج اطلاعات بامعنی از داده‌های تصویری، نقش بسیار مهمی ایفا می‌کند.
فهرست مطالب این نوشته
پردازش تصویر با پایتون
پردازش تصاویر با پایتون با ابزار SciKit-Image
کتابخانه Numpy و پردازش تصویر با پایتون
کتابخانه SciPy
کتابخانه‌های PIL و Pillow
کتابخانه OpenCV-Python
کتابخانه SimpleCV
کتابخانه Mahotas
کتابخانه SimpleITK
کتابخانه pgmagick
ابزار Pycairo
جمع‌بندی‌

اگرچه بسیاری از کاربران، برنامه‌نویسان و یا توسعه‌دهندگان برنامه‌های کاربردی، از محیط و زبان برنامه‌نویسی «متلب» (MATLAB) جهت توسعه برنامه‌های کاربردی مرتبط با حوزه پردازش تصویر استفاده می‌کنند، با این حال «زبان برنامه‌نویسی پایتون» (Python Programming Language) ابزارهای بسیار مفید و کاربردی جهت پردازش و «دستکاری» (Manipulation) تصاویر دیجیتالی در اختیار این دسته از افراد قرار می‌دهد. در این مطلب، برخی از مهم‌ترین ابزارهای پردازش تصویر با پایتون و دستکاری تصاویر دیجیتالی در این زبان برنامه‌نویسی محبوب مورد بررسی قرار می‌گیرند.

در «علوم کامپیوتر» (Computer Science)، به استفاده از الگوریتم‌های کامپیوتری برای انجام عملیات پردازش تصویر روی تصاویر دیجیتالی، «پردازش تصاویر دیجیتال» (Digital Image Processing) گفته می‌شود. معمولا از الگوریتم‌های پردازش تصاویر دیجیتال جهت «تحلیل تصاویر» (Image Analysis)، دستکاری تصاویر، «بهبود تصاویر» (Image Enhancement)، استخراج اطلاعات مفید از تصاویر و یا بهینه‌سازی «ویژگی‌های مشخصه» (Characteristics) تصاویر دیجیتال استفاده می‌شود. در این مطلب، قرار است مهم‌ترین ابزارهای پردازش تصویر با پایتون معرفی می‌شوند.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


پردازش تصویر با پایتون

تاکنون ابزارهای متنوعی برای پردازش تصویر با پایتون معرفی شده‌اند. این دسته از ابزارها، «کتابخانه‌ها» (Libraries) و «بسته‌های» (Packages) برنامه‌نویسی، امکانات بسیار متنوع و مفیدی برای «تبدیل تصاویر» (Image Transformation)، فهمیدن اطلاعات موجود در این داده‌ها و به طور کلی، دستکاری و پردازش تصاویر در اختیار کاربران و برنامه‌نویسان قرار می‌دهند. به عبارت دیگر، ابزارهای پردازش تصویر با پایتون به کاربران این امکان را می‌دهند تا به شکل بسیار ساده و «شهودی» (Intuitive) داده‌های تصویری را تحلیل و اطلاعات بامعنی از آن‌ها استخراج کنند.

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

زبان پایتون می‌تواند به عنوان ابزاری برای انجام عملیات پردازشی روی تصاویر دیجیتالی مورد استفاده قرار بگیرد. از جمله متداول‌ترین فرایندهای پردازش تصویر با پایتون که توسط ابزارها و کتابخانه‌های این زبان برنامه‌نویسی قابل اجرا هستند، می‌توان به مواردی نظیر «برش» (Cropping)، «برعکس کردن» (Flipping)، «چرخاندن» (Rotating)، «قطعه‌بندی تصویر» (Image Segmentation)، «دسته‌بندی تصویر» (Image Classification)، «استخراج ویژگی» (Feature Extraction)، «ترمیم تصاویر» (Image Restoration) و «بازشناسی تصویر» (Image Recognition) اشاره کرد.

زبان برنامه‌نویسی پایتون ابزار بسیار مناسبی برای عملکردهای ذکر شده در حوزه پردازش تصویر محسوب می‌شود. شاید تا چند سال پیش و با توجه به وجود ابزاری نظیر متلب و یکه‌تازی آن در این حوزه، ایده پردازش تصویر با پایتون و استفاده از آن برای دستکاری تصاویر، ایده بسیار ابتدایی و ناکارآمدی محسوب می‌شد. ولی در چند سال اخیر، محبوبیت زبان پایتون به عنوان یک «زبان برنامه‌نویسی علمی» (Scientific Programming Language)، در میان جامعه برنامه‌نویسان به شدت افزایش یافته است. همچنین، محبوبیت روز افزون این زبان برنامه‌نویسی سبب شده است تا ابزارهای بسیار پیشرفته پردازش تصویر، به طور رایگان، به عنوان بخشی از اکوسیستم این زبان برنامه‌نویسی در دسترس کاربران و برنامه‌نویسان قرار بگیرد.

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

پردازش تصاویر با پایتون با ابزار SciKit-Image

ابزار SciKit-Image، یک بسته برنامه‌نویسی «منبع باز» (Open Source) است که با ساختار آرایه‌ای تعریف شده توسط کتابخانه NumPy کار می‌کند. این ابزار، یکی از مهم‌ترین کتابخانه‌های پردازش تصویر با پایتون محسوب می‌شود که به طور رایگان در دسترس کاربران و برنامه‌نویسان قرار گرفته شده است. در بسته SciKit-Image، مجموعه‌ای از الگوریتم‌ها و ابزارهای پردازش تصویر، جهت استفاده در کاربردهای تحقیقاتی، آموزشی و صنعتی در اختیار کاربران قرار داده شده است.

کار کردن با توابع و الگوریتم‌های SciKit-Image (که جهت پردازش تصویر با پایتون استفاده می‌شوند)، حتی برای کسانی که برنامه‌نویس مبتدی هستند و آشنایی ابتدایی از اکوسیستم پایتون دارند، بسیار ساده و سر راست است. کدهای پیاده‌سازی شده در ابزار SciKit-Image از کیفیت بسیار بالایی برخوردارند و توسط جامعه برنامه‌نویسی بسیار فعال و متشکل از برنامه‌نویسان داوطلب پشتیبانی و به‌روزرسانی می‌شوند.

این بسته را می‌توان با استفاده از skimage در زبان پایتون import کرد. همچنین، بسیاری از توابع و الگوریتم‌های پیاده‌سازی شده را می‌توان در «زیر واحدهای» (Submodules) این بسته برنامه‌نویسی پیدا کرد و مورد استفاده قرار داد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط ابزار SciKit-Image قابل انجام است، نمایش داده خواهد شد.

«فیلتر گذاری روی تصاویر» (Image Filtering): با استفاده از این ابزار، می‌توان فیلترهای «بالاگذر» (High Pas) و «پایین گذر» (Low Pass) را جهت انجام پردازش‌هایی نظیر «تشخیص لبه» (Edge Detection) روی تصاویر اعمال کرد.

import matplotlib.pyplot as plt  
%matplotlib inline
       
from skimage import data,filters
       
image = data.coins()   # ... or any other NumPy array!  
edges = filters.sobel(image)  
plt.imshow(edges, cmap='gray')

پردازش تصویر با پایتون

«تطبیق الگو» (Template Matching): یکی از ساده‌ترین فرایندهای پردازش تصویر با پایتون و ابزار SciKit-Image، تطبیق الگو است. در کاربردهای پردازش تصویر، برای تشخیص ظاهر شدن یک تصویر الگو در یک یا مجموعه‌ای از تصاویر دیگر، از الگوریتم‌های تطبیق الگو استفاده می‌شود.

import numpy as np
import matplotlib.pyplot as plt

from skimage import data
from skimage.feature import match_template

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


image = data.coins()
coin = image[170:220, 75:130]

result = match_template(image, coin)
ij = np.unravel_index(np.argmax(result), result.shape)
x, y = ij[::-1]

fig = plt.figure(figsize=(8, 3))
ax1 = plt.subplot(1, 3, 1)
ax2 = plt.subplot(1, 3, 2)
ax3 = plt.subplot(1, 3, 3, sharex=ax2, sharey=ax2)

ax1.imshow(coin, cmap=plt.cm.gray)
ax1.set_axis_off()
ax1.set_title('template')

ax2.imshow(image, cmap=plt.cm.gray)
ax2.set_axis_off()
ax2.set_title('image')
# highlight matched region
hcoin, wcoin = coin.shape
rect = plt.Rectangle((x, y), wcoin, hcoin, edgecolor='r', facecolor='none')
ax2.add_patch(rect)

ax3.imshow(result)
ax3.set_axis_off()
ax3.set_title('`match_template`\nresult')
# highlight matched region
ax3.autoscale(False)
ax3.plot(x, y, 'o', markeredgecolor='r', markerfacecolor='none', markersize=10)

plt.show()

پردازش تصویر با پایتون
کتابخانه Numpy و پردازش تصویر با پایتون

کتابخانه Numpy یکی از کتابخانه‌های برنامه‌نویسی کلیدی در زبان برنامه‌نویسی پایتون محسوب می‌شود که پشتیبانی از «نوع داده‌ای آرایه» (Array Datatype) را در پایتون فراهم می‌کند. این کتابخانه، یکی از مهم‌ترین کتابخانه‌های توسعه داده شده برای کاربردهای پردازش تصویر با پایتون نیز محسوب می‌شود که به طور رایگان در دسترس کاربران و برنامه‌نویسان قرار گرفته شده است.

به طور کلی، یک «تصویر» (Image) یک آرایه استاندارد قابل تعریف توسط کتابخانه Numpy محسوب می‌شود که شامل پیکسل‌های متناظر با نقاط داده‌ای خواهد بود. بنابراین، با استفاده از عملیات پایه‌ای تعریف شده در Numpy نظیر «بخش‌بندی» (Slicing)، «پوشش گذاری» (Masking)، «شاخص گذاری چندگانه» (Fancy Indexing) و سایر موارد، کاربر قادر خواهد بود تا مقادیر پیکسل‌های یک تصویر را تغییر دهد. در کاربرد‌های پردازش تصویر با پایتون و کتابخانه Numpy، می‌توان از کتابخانه skimage برای بارگذاری تصاویر و از کتابخانه Matplotlib جهت نمایش آن‌ها استفاده کرد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Numpy قابل انجام است، نمایش داده خواهد شد.

«پوشش گذاری تصاویر» (Image Masking): یکی از فرایندهای پایه‌ای در پردازش تصویر محسوب می‌شود که به وسیله آن، بخش‌هایی از یک تصویر پنهان و بخش‌های دیگر موجود در تصویر نمایان می‌شوند.

import numpy as np
from skimage import data
import matplotlib.pyplot as plt
%matplotlib inline
   
image = data.camera()  
type(image)
numpy.ndarray #Image is a NumPy array:

mask = image < 87  
image[mask]=255  
plt.imshow(image, cmap='gray')

پردازش تصویر با پایتون
کتابخانه SciPy

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


کتابخانه SciPy یکی دیگر از کتابخانه‌های کلیدی برای برنامه‌نویسی علمی در زبان برنامه‌نویسی پایتون محسوب می‌شود (همانند Numpy). از این کتابخانه مهم نیز می‌توان برای پیاده‌سازی برخی از کاربردهای پردازش تصویر با پایتون استفاده کرد. کتابخانه SciPy حاوی توابع و الگوریتم‌هایی است که به راحتی می‌توان از آن‌ها برای انجام عملیات (ساده) دستکاری و پردازش تصویر با پایتون استفاده کرد.

به طور ویژه، زیر واحد scipy.ndimage توابع عملیاتی لازم جهت انجام عملیات روی آرایه‌های چندبُعدی NumPy (آرایه‌هایی که برای نمایش تصاویر، در قالب آرایه، مورد استفاده قرار می‌گیرند) را فراهم می‌آورد. هم‌اکنون کتابخانه SciPy، توابع لازم برای «فیلتر گذاری خطی و غیرخطی» (Linear and Non-Linear Filtering)، «مورفولوژی باینری» (Binary Morphology)، «درون‌یابی تصویر» (Image Interpolation) و «اندازه‌گیری اشیاء» (Object Measurement) را در اختیار کاربران و برنامه‌نویسان قرار می‌دهد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه SciPy قابل انجام است، نمایش داده خواهد شد.

استفاده از کتابخانه SciPy جهت «تار کردن تصویر» (Image Blurring) با استفاده از «فیلتر گاوسی» (Gaussian Filter): یکی از فرایندهای ساده پردازش تصویر با پایتون و کتابخانه SciPy، امکان اعمال فیلتر گاوسی روی تصاویر است که معمولا برای تار کردن (Blurring) تصاویر مورد استفاده قرار می‌گیرد.

from scipy import misc,ndimage
   
face = misc.face()  
blurred_face = ndimage.gaussian_filter(face, sigma=3)  
very_blurred = ndimage.gaussian_filter(face, sigma=5)
   
#Results  
plt.imshow(<image to be displayed>)

پردازش تصویر با پایتون

from scipy.ndimage import gaussian_filter
from scipy import misc
import matplotlib.pyplot as plt

a = np.arange(50, step=2).reshape((5,5))
gaussian_filter(a, sigma=1)

fig = plt.figure()
plt.gray()  # show the filtered result in grayscale
ax1 = fig.add_subplot(121)  # left side
ax2 = fig.add_subplot(122)  # right side
ascent = misc.ascent()
result = gaussian_filter(ascent, sigma=5)
ax1.imshow(ascent)
ax2.imshow(result)
plt.show()

پردازش تصویر با پایتون

فیلتر prewitt:

from scipy import ndimage, misc
import matplotlib.pyplot as plt
fig = plt.figure()
plt.gray()  # show the filtered result in grayscale
ax1 = fig.add_subplot(121)  # left side
ax2 = fig.add_subplot(122)  # right side
ascent = misc.ascent()
result = ndimage.prewitt(ascent)
ax1.imshow(ascent)
ax2.imshow(result)
plt.show()

پردازش تصویر با پایتون

فیلتر sobel:

from scipy import ndimage, misc
import matplotlib.pyplot as plt
fig = plt.figure()
plt.gray()  # show the filtered result in grayscale
ax1 = fig.add_subplot(121)  # left side
ax2 = fig.add_subplot(122)  # right side
ascent = misc.ascent()
result = ndimage.sobel(ascent)
ax1.imshow(ascent)
ax2.imshow(result)
plt.show()

پردازش تصویر با پایتون
کتابخانه‌های PIL و Pillow

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


کتابخانه PIL که مخفف عبارت Python Imaging Library یا کتابخانه تصویر پایتون است، یکی از کتابخانه‌های پردازش تصویر با پایتون محسوب می‌شود. این کتابخانه، پشتیبانی از عملیات مرتبط با پردازش تصویر نظیر باز کردن، دستکاری و ذخیره‌سازی تصاویر در فرمت‌های مختلف را به زبان پایتون اضافه می‌کند. با این حال، توسعه آن از سال 2009 دچار وقفه شده است.

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

کتابخانه Pillow مجموعه‌ای از قابلیت‌های پردازش تصویر پایه نظیر «عملیات نقطه‌ای» (Point Operations)، فیلتر گذاری با مجموعه‌ای از «کرنل‌های پیچشی» (Convolutional Kernels) تعبیه شده و «تبدیلات فضای رنگی» (Color Space Conversion) را در اختیار کاربر و برنامه‌نویس قرار می‌دهد. در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه‌های PIL و Pillow قابل انجام هستند، نمایش داده خواهد شد.

«بهبود تصاویر» (Image Enhancement): با استفاده از ماژول ImageFilter در کتابخانه Pillow، می‌توان تصاویر دیجیتالی را از  طریق دستکاری مقادیر «کنتراست» (Contrast)، بهبود بخشید.

from PIL import Image,ImageFilter  
#Read image
im = Image.open('image.jpg')
#Display image  
im.show()
   
from PIL import ImageEnhance  
enh = ImageEnhance.Contrast(im)  
enh.enhance(1.8).show("30% more contrast")
5-pillow.png

پردازش تصویر با پایتون
کتابخانه OpenCV-Python

کتابخانه OpenCV که مخفف Open Source Computer Vision Library یا کتابخانه منبع باز بینایی کامپیوتر است، یکی از پراستفاده‌ترین کتابخانه‌های برنامه‌نویسی برای کاربردهای «بینایی کامپیوتر» (Computer Vision) محسوب می‌شود. کتابخانه OpenCV-Python، واسط برنامه‌نویسی کاربردی (API) برای کتابخانه OpenCV در زبان پایتون محسوب می‌شود.

این کتابخانه نه تنها از سرعت بسیار بالایی برخوردار است (زیرا کدهای پیاده‌سازی آن توسط زبان C و C++‎ نوشته شده است)، بلکه کد نویسی برنامه‌های کاربردی مرتبط با پردازش تصویر با پایتون و به‌کاراندازی (Deploy) آن‌ها را تسهیل می‌بخشد. چنین ویژگی‌هایی، کتابخانه OpenCV-Python را به بهترین انتخاب جهت پردازش تصویر با پایتون و پیاده‌سازی برنامه‌های بینایی کامپیوتر در این زبان بدل کرده است (به ویژه اگر برنامه‌های بینایی کامپیوتر توسعه داده شده، به انجام محاسبات ریاضی پیچیده و سنگین نیاز داشته باشند) . در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه OpenCV-Python قابل انجام است، نمایش داده خواهد شد.

«ترکیب تصاویر» (Image Blending): با استفاده از قابلیتی به نام «هرم تصاویر» (Image Pyramid) در OpenCV-Python، می‌توان تصاویر متناظر با یک سیب و یک پرتقال را با یکدیگر ترکیب و یک تصویر جدید درست کرد.

import cv2
import numpy as np,sys

A = cv2.imread('apple.jpg')
B = cv2.imread('orange.jpg')

# generate Gaussian pyramid for A
G = A.copy()
gpA = [G]
for i in xrange(6):
    G = cv2.pyrDown(G)
    gpA.append(G)

# generate Gaussian pyramid for B
G = B.copy()
gpB = [G]
for i in xrange(6):
    G = cv2.pyrDown(G)
    gpB.append(G)

# generate Laplacian Pyramid for A
lpA = [gpA[5]]
for i in xrange(5,0,-1):
    GE = cv2.pyrUp(gpA[i])
    L = cv2.subtract(gpA[i-1],GE)
    lpA.append(L)

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


# generate Laplacian Pyramid for B
lpB = [gpB[5]]
for i in xrange(5,0,-1):
    GE = cv2.pyrUp(gpB[i])
    L = cv2.subtract(gpB[i-1],GE)
    lpB.append(L)

# Now add left and right halves of images in each level
LS = []
for la,lb in zip(lpA,lpB):
    rows,cols,dpt = la.shape
    ls = np.hstack((la[:,0:cols/2], lb[:,cols/2:]))
    LS.append(ls)

# now reconstruct
ls_ = LS[0]
for i in xrange(1,6):
    ls_ = cv2.pyrUp(ls_)
    ls_ = cv2.add(ls_, LS[i])

# image with direct connecting each half
real = np.hstack((A[:,:cols/2],B[:,cols/2:]))

cv2.imwrite('Pyramid_blending2.jpg',ls_)
cv2.imwrite('Direct_blending.jpg',real)

پردازش تصویر با پایتون
کتابخانه SimpleCV

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

ویژگی مهم این کتابخانه این است که کاربران مبتدی، بدون این که لازم باشد تا اطلاعات و دانش کافی در مورد مفاهیمی نظیر «عمق‌های بیتی» (Bit Depths)، فرمت‌های فایلی (File Format)، «فضاهای رنگی» (Color Spaces) و سایر موارد داشته باشند، به راحتی قادر به کار کردن با این کتابخانه و انجام عملیات پردازش تصویر با پایتون خواهند بود. بازه یادگیری کتابخانه SimpleCV به مراتب کوتاه‌تر از OpenCV است. برخی از مزایای این کتابخانه عبارتند از:

    برنامه‌نویسان مبتدی، به راحتی قادر به نوشتن برنامه‌های مرتبط با بینایی کامپیوتر توسط این کتابخانه هستند.
    این کتابخانه، توانایی کار کردن با جریان‌های ویدئویی (Video Streams)، تصاویر، فایل‌های ویدئویی و سایر موارد را دارد (به عبارت دیگر، با انواع فایل‌ها و فرمت‌های ویدئویی و تصویری سازگار است).

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه SimpleCV قابل انجام است، نمایش داده خواهد شد.

تابع «آستانه‌گذاری» (Thresholding): تصویر زیر، نحوه عملکرد تابع Thresholding در کتابخانه SimpleCV را نشان می‌دهد. این تابع، هر کدام از پیکسل‌های یک تصویر را بسته به میزان «روشنایی» (Brightness) آن‌ها، سفید یا سیاه می‌کند.

from SimpleCV import Image, Color, Display

# Make a function that does a half and half image.
def halfsies(left,right):
    result = left
    # crop the right image to be just the right side.
    crop   = right.crop(right.width/2.0,0,right.width/2.0,right.height)
    # now paste the crop on the left image.
    result = result.blit(crop,(left.width/2,0))
    # return the results.
    return result
# Load an image from imgur.
img = Image('http://i.imgur.com/lfAeZ4n.png')
# binarize the image using a threshold of 90
# and invert the results.
output = img.binarize(90).invert()
# create the side by side image.
result = halfsies(img,output)
# show the resulting image.
result.show()
# save the results to a file.
result.save('juniperbinary.png')
@Olhcim

پردازش تصویر با پایتون

«تشخیص لبه» (Edge Detection): در تصویر زیر، نحوه عملکرد تابع تشخیص لبه در کتابخانه SimpleCV نشان داده شده است. این تابع، مقادیر پیکسلی متناظر با لبه‌های تصویر را با رنگ سفید نشان می‌دهد.

# Make a function that does a half and half image.
def halfsies(left,right):
    result = left
    # crop the right image to be just the right side.
    crop   = right.crop(right.width/2.0,0,right.width/2.0,right.height)
    # now paste the crop on the left image.
    result = result.blit(crop,(left.width/2,0))
    # return the results.
    return result
# Load an image from imgur.
img = Image('http://i.imgur.com/lfAeZ4n.png')
# create an edge image using the Canny edge detector
# set the first threshold to 160
output = img.edges(t1=160)
# generate the side by side image.
result = halfsies(img,output)
# show the results.
result.show()
# save the output images.
result.save('juniperedges.png')

پردازش تصویر با پایتون

مشخص کردن «نقاط کلیدی» (Keypoints) در تصویر: نقاط کلیدی، معمولا مناطق خاص بصری در تصویر هستند که برای انواع مختلفی از کاربردهای بینایی کامپیوتر نظیر «بازسازی سه‌بُعدی» (3D Reconstruction) و «تطبیق تصویر» (Image Matching)‌ مورد استفاده قرار می‌گیرند. پیدا کردن نقاط کلیدی در کتابخانه SimpleCV بسیار ساده است (تابع Image.findKeypoints).

from SimpleCV import Image, Color, Display
# load an image from imgur
img = Image('http://i.imgur.com/lfAeZ4n.png')
# use a keypoint detector to find areas of interest
feats = img.findKeypoints()
# draw the list of keypoints
feats.draw(color=Color.RED)
# show the  resulting image.
img.show()
# apply the stuff we found to the image.
output = img.applyLayers()
# save the results.
output.save('juniperfeats.png')

پردازش تصویر با پایتون
کتابخانه Mahotas

کتابخانه Mahotas یکی دیگر از کتابخانه‌های موجود جهت پردازش تصویر با پایتون و پیاده‌سازی برنامه‌های کاربردی مرتبط با حوزه بینایی کامپیوتر است. در این کتابخانه، علاوه بر اینکه توابع پردازش تصویر مرسوم نظیر «فیلتر گذاری» (Filtering) و «عملیات مورفولوژیکی» (Morphological Operations) تعریف شده است، تعدادی توابع بینایی کامپیوتر مدرن جهت «محاسبه ویژگی» (Feature Computation) نظیر «تشخیص نقاط مهم» (Interest Point Detection) و «توصیف کننده‌های محلی» (Local Descriptors) نیز گنجانده شده است.

واسط برنامه‌نویسی این کتابخانه توسط زبان پایتون نوشته شده است (که برای توسعه سریع برنامه‌های کاربردی مرتبط با پردازش تصویر با پایتون و یا برنامه‌های بینایی کامپیوتر بسیار مناسب است)، ولی الگوریتم‌ها در زبان C++‎ پیاده‌سازی شده‌اند (که سبب افزایش سرعت اجرای کدهای این کتابخانه می‌شود). همچنین، کتابخانه Mahotas علاوه بر اینکه سرعت بالایی دارد، «وابستگی‌های» (Dependencies) برنامه‌نویسی بسیار کمی دارد.

در ادامه، برخی از فرایندهای پردازش تصویر با پایتون که توسط کتابخانه Mahotas قابل انجام است، نمایش داده خواهد شد.

حل مسأله «پیدا کردن والی» (Finding Wally) توسط کتابخانه Mahotas: هدف از این مسأله پیدا کردن شخصیت والی (Wally) در تصویر زیر است.

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276


from pylab import imshow, show
import mahotas
import mahotas.demos
wally = mahotas.demos.load('Wally')
imshow(wally)
show()

پردازش تصویر با پایتون

wfloat = wally.astype(float)
r,g,b = wfloat.transpose((2,0,1))
w = wfloat.mean(2)
pattern = np.ones((24,16), float)
for i in xrange(2):
    pattern[i::4] = -1
v = mahotas.convolve(r-w, pattern)
mask = (v == v.max())
mask = mahotas.dilate(mask, np.ones((48,24)))
np.subtract(wally, .8*wally * ~mask[:,:,None], out=wally, casting='unsafe')
imshow(wally)
show()

پردازش تصویر با پایتون
کتابخانه SimpleITK

کتابخانه SimpleITK، یک سیستم منبع باز و «چند سکویی» (Cross-Platform) است که مجموعه‌ای کامل از ابزارهای نرم‌افزاری جهت تحلیل تصاویر دیجیتال را در اختیار برنامه‌نویسان و توسعه‌دهندگان قرار می‌دهد. ویژگی مهم کتابخانه SimpleITK، پشتیبانی از تعداد زیادی مؤلفه نرم‌افزاری است که برای انجام عملیات پردازشی نظیر فیلتر گذاری، «قطعه‌بندی تصاویر» (Image Segmentation) و «ثبت تصویر» (Image Registration) روی تصاویر دیجیتالی مورد استفاده قرار می‌گیرند. این کتابخانه به زبان C++‌‎ نوشته شده است ولی برای دامن
در ادامه آموزش های برنامه نویسی و همینطور سورس کد های برنامه نویسی، در این بخش می خواهیم به معرفی و آموزش سورس کد پردازش تصویر با پایتون به صورت کامل و اختصاصی بپردازیم. نحوه پردازش تصویر با پایتون در مقاله ای در روزنامه 1911 در مورد روزنامه نگاری و تبلیغات و به نقل از سردبیر روزنامه تس فلاندرز، عبارت زیر ظاهر شد: از تصویر استفاده کنید. ارزش هزار کلمه دارد. عبارتی مشابه نیز در آگهی روزنامه 1913 خانه تأمین خودرو Piqua ظاهر شد: یک نگاه ارزش هزار کلمه را دارد. شکی نیست که تصاویر نقش مهمی در ارتباطات ما دارند – نه فقط تصاویر عمومی، بلکه عکسهای تخصصی مانند تصاویر پزشکی (مانند MRI، سونوگرافی و غیره). ما می توانیم عکس ها را از طریق دستگاه های مختلف اکتسابی به دست آوریم. به عنوان مثال، تصاویر ملانوم (سرطان پوست) با استفاده از درماتوسکوپ بازیابی می شوند. ما از خود یا دوستان با استفاده از دوربین دیجیتال یا تلفن هوشمند عکس می گیریم. با این حال، گاهی اوقات، برخی از مسائل را در تصاویر خود مشاهده می کنیم، مانند محو شدن برای مثال، که ممکن است به دلیل دستگاه اکتسابی مورد استفاده باشد. اما، در این مورد چه باید کرد؟ برخی از تصاویر پزشکی برای تجزیه و تحلیل برای شما ارسال شده است و شما نمی توانید چنین تصاویری را مجدداً بگیرید. حتی اگر تصویری را مجدداً بگیرید، وضوح تصویری که مشاهده می کنید تغییر نمی کند و هیچ مشکل دیگری با آن روبرو نیستید. پردازش تصویر در چنین شرایطی به کار می رود. من دوست داشتم اصطلاح پردازش تصویر در واژه نامه های آکسفورد چگونه تعریف شود: تجزیه و تحلیل و دستکاری تصویر دیجیتالی شده، به ویژه به منظور بهبود کیفیت آن. “تصویر دیجیتالی” در اینجا به این واقعیت اشاره دارد که تصویر دیجیتالی تلقی می شود، یعنی توسط یک کامپیوتر پردازش می شود. دریافت رایانه در این بازی به معنای استفاده از یک زبان برنامه نویسی است. در این آموزش به شما نشان خواهم داد که چگونه می توانیم از زبان برنامه نویسی پایتون برای انجام کارهای پردازش تصویر روی یک تصویر استفاده کنیم. با ما همراه باشید.! سورس پروژه پردازش تصویر با پایتون scikit-image کتابخانه ای که قرار است از آن برای انجام وظایف پردازش تصویر خود استفاده کنیم scikit-image است. با توجه به مقاله scikit-image: آموزش پردازش تصویر در پایتون: scikit-image یک کتابخانه پردازش تصویر است که الگوریتم ها و ابزارهای کاربردی را برای استفاده در تحقیقات، آموزش و برنامه های صنعتی پیاده سازی می کند. این نرم افزار تحت مجوز منبع آزاد Modified BSD منتشر می شود، یک API مستند به زبان برنامه نویسی پایتون ارائه می دهد و توسط یک تیم فعال و بین المللی از همکاران توسعه یافته است. اولین کاری که باید انجام دهیم نصب scikit-image است. دستورالعمل های نصب کتابخانه را می توانید در صفحه بارگیری مشاهده کنید و در این آموزش نحوه نصب کتابخانه بر روی دستگاه Mac OS X را به شما نشان خواهم داد، زیرا این چیزی است که من در حال نوشتن این آموزش استفاده می کنم. از آنجا که scikit-image یک کتابخانه خارجی است، اولین کاری که باید انجام دهیم نصب این کتابخانه است. برای این کار، من از pip استفاده می کنم، که (بر اساس ویکی پدیا) است: یک سیستم مدیریت بسته که برای نصب و مدیریت بسته های نرم افزاری نوشته شده در پایتون استفاده می شود. بسیاری از بسته ها را می توان در فهرست بسته پایتون (PyPI) یافت. برای نصب pip می توانید مراحل ذکر شده در راهنمای کاربر بسته بندی پایتون را دنبال کنید، اما اگر پایتون 2.7.9 و بالاتر یا پایتون 3.4 و بالاتر دارید، پیپ دارید! scikit-image را می توان با تایپ کردن دستور زیر (در ترمینال Mac OS X) به سادگی نصب کرد: pip install -U scikit -image ما اکنون کتابخانه را نصب کرده ایم و برای سرگرمی پردازش تصویر آماده ایم! تصویر آزمایشی که در این آموزش استفاده خواهیم کرد baboon.png است. پیش بروید و آن را بارگیری کنید، یا به سادگی از تصویر دلخواه خود استفاده کنید. تصویر به شرح زیر است: پردازش تصویر با استفاده از پایتون ابعاد یک تصویر گاهی اوقات باید ابعاد یک تصویر را بدانیم (بیشتر در قسمت فیلترینگ). به منظور بررسی ابعاد تصویر خود ، می توانیم از روش guess_spatial_dimensions () به شرح زیر استفاده کنیم: from skimage import io, color img = io.imread('baboon.png') dimensions = color.guess_spatial_dimensions(img) print dimensions خروجی اسکریپت بالا 3 است، به این معنی که ما تصویری متشکل از سه بعد مکانی داریم. رنگ تا مقیاس خاکستری از قسمت بالا متوجه شدیم که تصویر ما یک تصویر آرایه سه بعدی (با فرمت RGBA با شکل (.. ، .. ، 4)) است. چگونه متوجه شدم که در قالب RGBA است؟ شما به سادگی می توانید موارد زیر را انجام دهید: import skimage.io as io from skimage.color import rgb2gray img = io.imread('baboon.png') print img.shape در این حالت، این خروجی را دریافت خواهید کرد: (512 ، 512 ، 4). در این بخش، ما می خواهیم تصویر اصلی baboon.png رنگی را به یک تصویر دوبعدی خاکستری (سیاه و سفید) تبدیل کنیم. این را می توان به سادگی با استفاده از اسکریپت زیر انجام داد: import skimage.io as io from skimage.color import rgb2gray img = io.imread('baboon.png') img_grayscale = rgb2gray(img) بیایید جلو برویم و تصویر جدید (مقیاس خاکستری) را در یک فایل ذخیره کنیم. این را می توان با استفاده از تابع imsave () به شرح زیر انجام داد (توجه کنید که تصویر جدید در فایل baboon-gs.png قرار دارد): io.imsave('baboon-gs.png',img_grayscale) برای بررسی ابعاد تصویر، می توانیم از اسکریپت قسمت قبل استفاده کنیم، در این صورت شما 2 مورد را پس می گیرید. یا می توانید از img_grayscale.shape استفاده کنید که نتیجه آن 512×512 است. بنابراین، ما اکنون یک تصویر دو بعدی داریم. برای نشان دادن تصویر جدید در مقیاس خاکستری، موارد زیر را به انتهای اسکریپت اضافه کنید: show_grayscale = io.imshow(img_grayscale) io.show() پردازش تصویر با استفاده از پایتون اعمال فیلتر بر روی تصویر در پردازش تصویر، فیلترینگ انجام می شود تا برخی از پیشرفت ها را در تصویر ایجاد کند. به طور کلی، فیلترینگ شامل عملیات زیر است: افزایش لبه، تیز کردن و صاف کردن. در این بخش، من به شما نشان می دهم که چگونه می توانیم فیلتر Sobel را روی تصویر خود اعمال کنیم، و ببینیم خروجی پس از انجام چنین عملیاتی چگونه است. من از مثال نشان داده شده در صفحه اول وب سایت scikit-image استفاده می کنم، اما روی تصویر ما اعمال شده است. اسکریپت اعمال فیلتر Sobel روی تصویر ما به شرح زیر است: from skimage import data, io, filters img = io.imread('baboon.png') edges = filters.sobel(img) io.imshow(edges) io.show() اگر اسکریپت را اجرا کنید، آیا مشکلی مشاهده کردید؟ بله، ما نمی توانیم عملیات را اعمال کنیم زیرا تصویر باید یک تصویر دو بعدی باشد. بنابراین، به جای استفاده از baboon.png، ما باید از تصویر دو بعدی خود، baboon-gs.png استفاده کنیم. خروجی این عملیات به صورت زیر است: پردازش تصویر با استفاده از پایتون نتیجه گیری بسیاری از عملیات پردازش تصویر وجود دارد و کتابخانه scikit-image Python بسیاری از عملیات جالب را در اختیار ما قرار می دهد که می توانیم روی تصاویر خود انجام دهیم. می توانید عملیات پردازش تصویر بیشتری را با استفاده از این کتابخانه در وب سایت scikit-image مشاهده کنید. ادامه در https://sourcesoft.ir/%D8%B3%D9%88%D8%B1%D8%B3-%DA%A9%D8%AF-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%A8%D8%A7-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86/

azsoftir.com
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276azsoftir.com

09367292276
azsoftir@gmail.com
azsoftir.com
09367292276az
softir@gmail.com
azsoftir.com
09367292276
نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.