معرفی 3 ماژول پایتون برای پردازش تصاویر – قسمت یازدهم
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پردازش تصویر با پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی متلب مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
در این مقاله به استخراج متن از تصاویر می پردازیم. شما با استفاده از پردازش تصاویر در پایتون می توانید متونی که در هر عکس به کار رفته رو، پردازش و دریافت کنید. در این قسمت، به معرفی ماژول و متدهایی می پردازیم که با استفاده از آنها می توانید پردازش های مختلفی رو در تصاویر انجام بدید.
۱ـ اعمال ماسک به تصویر رنگی
ماسک گذاری تصویر در پردازش تصویر به معنای اعمال و استفاده از تصویری دیگر بر روی تصویر اصلی بهمنظور تغییر مقادیر پیکسل تصویر است.
برای اعمال ماسک به تصویر ما از متد () HoughCircles از ماژول OpenCV استفاده میکنیم. متد () HoughCircles دایرههای درون تصویر را تشخیص میدهد. پس از تشخیص دایرهها، ما میتوانیم ماسک را بر روی این دایرهها اعمال کنیم.
متد () HoughCircles تصویر اصلی، گرادیان هاف (که مشخصکننده دادههای گرادیان لبههای دایره است) و اطلاعات معادله دایره را دریافت میکند.

در این معادله (xcenter , ycenter) مرکز دایره و r شعاع دایره هستند.
تصویر اصل ما بهصورت زیر است:

خب، حالا ما دایرهها را درون تصویر داریم و میتوانیم ماسک را اعمال کنیم. کد زیر را در نظر بگیرید:
import cv2
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
=img
cv2.imread(“ImageProcessingSample.jpg”)
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
تشخیص دایرههای تصویر توسط تابع () HoughCircles
,gray_img = cv2.medianBlur(cv2.cvtColor(img
(3 ,(cv2.COLOR_RGB2GRAY
,circles = cv2.HoughCircles(gray_img,
,cv2.HOUGH_GRADIENT, 1, 20, param1=50,
(param2=50, minRadius=0, maxRadius=0
circles = np.uint16(np.around(circles))
بهمنظور ایجاد ماسک از np.full استفاده میکنیم که آرایه NumPy با شکل دادهشده را ایجاد میکند:


گام بعدی ترکیب تصویر و آرایه ماسکی است که ما توسط عملگر bitwise_or بهصورت زیر درست کردیم:
,final_img = cv2.bitwise_or(img, img1
(masking=masking
نمایش تصویر نتیجه:
۲ـ استخراج متن از تصویر (OCR)
بهمنظور استخراج متن انگلیسی از تصویر، شما میتوانید از Google Tesseract- OCR استفاده کنید. شما میتوانید این افزونه را برای پردازش تصویر با پایتون توسط OpenCV از لینک زیر دانلود کنید.
https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.02-20180621.exe
پس ازآن شما باید ماژول pytesseract که wrapper پایتون است را برای Tesseract-OCR نصب و استفاده کنید:
pip install pytesseract
تصویری که ما متن را از آن استخراج خواهیم کرد بهصورت زیر خواهد بود:

حالا بیایید تا متن درون تصویر را به رشته کاراکترها تبدیل کنیم و متن را بهعنوان رشته در خروجی نمایش بدهیم.
۲ـ ۱ استفاده از متد pytesseract
ماژول pytesseract را در پایتون وارد میکنیم:
import pytesseract
مسیر فایل اجرایی Tesseract-OCR را مشخص میکنیم:
=pytesseract.pytesseract.tesseract_cmd
-r’C:\Program Files (x86)\Tesseract
‘OCR\tesseract
حال از متد image_to_string بهمنظور تبدیل عکس به رشته استفاده میکنیم:
print(pytesseract.image_to_string(‘BarmanOC
((‘R.jpg
خروجی مانند زیر خواهد بود:

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

