آموزش پردازش تصویر در پایتون – جلسه 9: عملگر آستانه

0
415
آموزش پردازش تصویر در پایتون – جلسه 9: عملگر آستانه

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

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

import cv2
import numpy as numpy

img = cv2.imread('book.jpg')
gray = cv2.cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, threshold = cv2.threshold(gray, 10, 255, cv2.THRESH_BINARY)
th = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 115, 1)

cv2.imshow('page', img)
cv2.imshow('paget', threshold)
cv2.imshow('threshAdaptive', th)

cv2.waitKey(0)
cv2.destroyAllWindows

 

پس از اجرای برنامه‌ی بالا به خروجی‌های زیر دست خواهیم یافت:

 

 

تصویر اصلی
تصویر اصلی
تصویر پس از اعمال عملگر آستانه ثابت
تصویر پس از اعمال عملگر آستانه ثابت
تصویر پس از اعمال عملگر آستانه متغیر
تصویر پس از اعمال عملگر آستانه متغیر

 

این مقاله برگرفته از آموزش ویدئویی زیر می‌باشد، برای مشاهده‌ی جزئیات بیشتر حتما این ویدئو را مشاهده بفرمائید.

 

منبع : سیسوگ

مطلب قبلیبروز رسانی پروژه‌های ESP8266 و NodeMcu به‌صورت آنلاین
مطلب بعدیقسمت سیزدهم: دستورات پرکاربرد و کلیدهای میان‌بر در آلتیوم دیزاینر

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید