هر تصویر داستانی خاص برای خود دارد که پردازش و گرفتن اطلاعات مفید آن میتواند حتی جان افراد را نجات دهد! با پردازش درست تصویری پزشکی یا تشخیص چهره یک تروریست، میتوان جان میلیونها نفر را در سراسر جهان نجات داد!
به گفته IDC حجم دیتا موجود در دنیا تا سال ۲۰۲۵ به ۱۷۵ زتابایت (۱۰ بهتوان ۲۷ بایت!) افزایش پیدا میکند و قسمت عظیمی از آن را تصاویر تشکیل میدهند. همین امر نشاندهنده اهمیت پردازش تصویر و نیاز با ابزارهای قویی در این حوزه است. البته این حجم بالا از تصاویر نیاز به روشها و ابزارها قدرتمندی دارد.
پردازش تصویر با پایتون یکی از بهترین راههایی است که میتوان از آن برای سروکله زدن با تعداد زیادی از این عکسها استفاده کرد. در این مقاله با مفهوم پردازش تصویر آشنا میشویم و سپس بهترین کتابخانههایش را معرفی میکنیم.
قبل از اینکه سراغ پردازش تصویر با پایتون برویم و وارد این دنیا شویم، نیاز است که تعریفی از خود تصویر داشته باشیم:
یک تصویر از تعدادی پیکسل تشکیل شده که هر کدام از آنها حاوی اطلاعاتی مثل سایه، میزان تیرگی و روشنی و رنگ خاصی در مورد آن عکس است.
معمولا پیکسل به یکی از چهار مدل زیر، اطلاعات را در مورد عکس در خود ذخیره میکند:
تعداد پیکسلهای یک عکس را هم میتوانید از ارتفاع و عرض آن بفهمید، مثلا، اگر ابعاد تصویری، یعنی عرض و ارتفاعش ۲۰۰ × ۳۰۰ باشد، تعداد کل پیکسلهای موجود در تصویر ۶۰۰۰۰ است.
کامپیوترها تصاویر دیجیتال را به عنوان آرایههای دو یا سه بعدی از اعداد درک میکنند. یک تصویر دیجیتال را میتوان مثل صفحه شطرنج تصور کرد. هر مربع در صفحه شطرنج یک پیکسل است.
پس در واقع تصویر دیجیتال، آرایهای پیکسلها (که به یکی از چهار مدل بالا مقداردهی شده) است که در ستون و ردیفهای مختلف، مرتب شدهاند.
چیزی که ما میبینیم در مقابل چیزی که کامپیوتر میبیند:
خب حالا که با مفهوم تصویر دیجیتال آشنا شدیم، وقت آن است که بفهمیم پردازش تصویر با پایتون چیست:
پردازش تصویر، به مجموعه ای از روشها و تکنیکها گفته میشود که برای دستکاری و تحلیل تصاویر دیجیتال انجام میشود.
همانطور که از اسمش پیداست، پردازش تصویر به معنای انجام عملیات روی تصویر است و از تکنیکهای مختلفی تا رسیدن به هدف نهایی (مثل وقتی که بخواهیم تصویر را به فرمت دیجیتال تبدیل کنیم، روی آن فیلترهای مختلفی اعمال کنیم، ویژگیهای خاصی را از آن استخراج کنیم و یا حتی تصاویر جدیدی را با استفاده از آن بسازیم) استفاده میکند.
در پردازش تصویر، با عکس بهصورت سیگنال دو بعدی رفتار شده و عملیات و متندهای سیگنال روی آن اعمال میشود.
پردازش تصویر با پایتون یا هر زبان دیگری بهصورت کلی در مراحل زیر انجام میشود:
هزاران پروژه پردازش تصویر با پایتون در حوزههای مختلف وجود دارد؛ از پزشکی گرفته تا امنیت.
اما چرا افراد ترجیح میدهند از این زبان برای پردازش تصویر استفاده کنند؟
بعد از اینکه فهمیدیم چرا پایتون برای پردازش تصویر گزینه خوبی است، قصد داریم در ادامه آموزش پردازش تصویر با پایتون رایگان را باهم دنبال کنیم.
پردازش تصویر با پایتون از طریق کتابخانههای قدرتمند این زبان صورت میگیرد که دانستن و آشنایی با آنها ضروری است.
آشنایی با این کتابخانهها به شما کمک میکند تا بتوانید هرچه راحتتر یک تصویر را پردازش کنید و بدانید برای رسیدن به هدف خاصی از کدام یک استفاده کنید. در ادامه شما را با چند کتابخانه مهم آشنا میکنیم و به آموزش پردازش تصویر با پایتون با چند کد ابتدایی در هر کتابخانه میپردازیم.
کتابخانه OpenCV یکی از مهمترین و پرکاربردترین کتابخانهها برای پردازش تصویر با پایتون است. این کتابخانه توسط شرکت قدرتمند Intel در سال ۲۰۰۰ توسعه پیدا کرد و بیشتر در کارهای بینایی کامپیوتری مثل تشخیص اشیا، تشخیص چهره، تقسیم بندی تصویر و… استفاده میشود. یکی از دلایل محبوبیت این کتابخانه بهدلیل سرعت پالایش است.
برای اینکه بیشتر با این کتابخانه آشنا شویم، در ادامه با کمک آن میخواهیم یک تصویر را خاکستری کنیم:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread(‘goku.jpeg’)
gray_image = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
fig, ax = plt.subplots(1, ۲, figsize=(16, ۸))
fig.tight_layout()
ax[0].imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))
ax[0].set_title(“Original”)
ax[1].imshow(cv.cvtColor(gray_image, cv.COLOR_BGR2RGB))
ax[1].set_title(“Grayscale”)
plt.show()
این کتابخانه یکی از مهمترین ابزارهای پردازش تصویر است که برای کارهای مختلفی از جمله تقسیم بندی، تحولات هندسی، دستکاری فضای رنگی، تحلیل و بررسی، فیلترکردن، مرفولوژی و… مناسب است. این کتابخانه با استفاده از الگوریتمهای کارآمد و با بهرهگیری از بخشهایی به زبان Cython (زبانی نزدیک به پایتون که عملکرد بالایی در حد زبان C ارائه میدهد) برای دستیابی به عملکرد بالا، طیف گستردهای از قابلیتها را برای دستکاری و تحلیل تصاویر در اختیار شما قرار میدهد.
نمونه استفاده از این کتابخانه برای مدلهای کانتور فعال (Active Contour Models) که بخشهای مختلف یک تصویر را از هم جدا میکند:
import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
from skimage import data
from skimage.filters import gaussian
from skimage.segmentation import active_contour
img = data.astronaut()
# Data for circular boundary
s = np.linspace(0, ۲*np.pi, ۴۰۰)
x = ۲۲۰ + ۱۰۰*np.cos(s)
y = ۱۰۰ + ۱۰۰*np.sin(s)
init = np.array([x, y]).T
# formation of the active contour
cntr = active_contour(gaussian(img, ۳),init, alpha=0.015, beta=10, gamma=0.001)
fig, ax = plt.subplots(1, ۲, figsize=(7, ۷))
ax[0].imshow(img, cmap=plt.cm.gray)
ax[0].set_title(“Original Image”)
ax[1].imshow(img, cmap=plt.cm.gray)
# circular boundary
ax[1].plot(init[:, ۰], init[:, ۱], ‘–r’, lw=3)
ax[1].plot(cntr[:, ۰], cntr[:, ۱], ‘-b’, lw=3)
ax[1].set_title(“Active Contour Image”)
اگرچه SciPy بیشتر برای محاسبات ریاضی و علمی شناخته شده است، اما با استفاده از زیرمجموعه scipy.ndimage، میتواند پردازش تصویر چندبعدی را هم انجام دهد. این زیرمجموعه توابعی را برای کار با آرایههای چندبعدی NumPy ارائه میدهد که تصاویر هم آرایههای چندبعدی هستند.
خواندن و تقسیمبندی تصاویر، کانولوشن، تشخیص چهره و استخراج ویژگی از جمله عملیاتی هستند که میتوانید با این کتابخانه انجام دهید.
بلور کردن یک تصویر با استفاده از SciPy :
from scipy import misc,ndimage
from matplotlib import pyplot as plt
face = misc.face()
blurred_face = ndimage.gaussian_filter(face, sigma=3)
fig, ax = plt.subplots(1, ۲, figsize=(16, ۸))
ax[0].imshow(face)
ax[0].set_title(“Original Image”)
ax[0].set_xticks([])
ax[0].set_yticks([])
ax[1].imshow(blurred_face)
ax[1].set_title(“Blurred Image”)
ax[1].set_xticks([])
ax[1].set_yticks([])
کتابخانهی (PIL (Python Imaging Library یک ابزار متن باز و رایگان برای انجام کارهای مختلف روی تصاویر است. با PIL میتوانید کارهای متنوعی مثل خواندن تصویر، تغییر اندازه، ذخیرهسازی در فرمتهای مختلف، چرخش و آینهسازی و اعمال فیلترهای ترسیم روی تصویر انجام دهید.
ورودی
خروجی
روش بالا بردن کیفیت تصویر با استفاده از این کتابخانه:
from PIL import Image, ImageFilter
#Read image
im = Image.open(‘cat_inpainted.png’)
#Display image
im.show()
from PIL import ImageEnhance
enh = ImageEnhance.Contrast(im)
enh.enhance(1.8).show(“30% more contrast”)
یک تصویر اساسا آرایهای از پیکسلهاست. بنابراین، کتابخانه NumPy که عملیات زیادی روی آرایهها انجام میدهد به راحتی میتواند کارهایی مانند برش تصویر، ماسک کردن و دستکاری مقادیر پیکسل را ممکن سازد.
برای مثال برای استخراج کانال های قرمز/سبز/آبی از تصویر زیر از این کد استفاده میکنیم:
from PIL import Image
import numpy as np
im = np.array(Image.open(‘goku.png’))
im_R = im.copy()
im_R[:, :, (1, ۲)] = ۰
im_G = im.copy()
im_G[:, :, (0, ۲)] = ۰
im_B = im.copy()
im_B[:, :, (0, ۱)] = ۰
im_RGB = np.concatenate((im_R, im_G, im_B), axis=1)
pil_img = Image.fromarray(im_RGB)
pil_img.save(‘goku.jpg’)
این کتابخانه یکی دیگر از کتابخانههای پردازش تصویر و بینایی کامپیوتری است که بهطور خاص برای انفورماتیک تصویر زیستی طراحی شده است. Mahotas از آرایههای Numpy برای خواندن و نوشتن و از زبان ++C برای پیادهسازی استفاده میکند.
با کمک کد زیر میتوان کسی را بین جمعیت پیدا کرد:
from pylab import imshow, show
import mahotas
import mahotas.demos
import numpy as np
wally = mahotas.demos.load(‘Wally’)
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 range(2):
pattern[i::4] = -۱
v = mahotas.convolve(r-w, pattern)
mask = (v == v.max())
mask = mahotas.dilate(mask, np.ones((48,24)))
np.subtract(wally, .۸*wally * ~mask[:,:,None], out=wally, casting=’unsafe’)
imshow(wally)
show()
ITK که مخفف Insight Segmentation and Registration Toolkit است، یک پلتفرم منبع باز قدرتمند و پرکاربرد برای تشخیص و همترازی تصاویر میباشد. این ابزار برای دو هدف اصلی به کار میرود:
این ابزار یکی دیگر از ابزارهای قدرتمند پایتون است که برای اهدافی مثل تغییر اندازه، چرخش، شارپ کردن، تصاویر گرادیان و نوشتن متن روی عکس استفاده میشود.
بلور کردن عکس با استفاده از این کتابخانه:
from pgmagick.api import Image
img = Image(‘leena.jpeg’)
# blur image
img.blur(10, ۵)
یادگیری پردازش تصویر از راههای مختلفی امکان پذیر است؛ از کتاب پردازش تصویر با پایتون گرفته تا سایتهای آموزشی مختلف. اما بهترین روش چیست؟
بهترین راه یادگیری این علم میتواند با توجه به روش یادگیری هر فرد متفاوت باشد، اما برای اکثر افراد دوره پردازش تصویر با پایتون یک انتخاب مناسب است. ولی هر دورهای میتواند پاسخگو نیازهای ما باشد؟ قطعا جواب «نه» است! دورهای که انتخاب میکنید باید مربی داشته باشد که در این حوزه تجربه داشته و مباحث را بهصورت جامع تدریس کند، پاسخگو سوالاتتان باشد و مدرک معتبری به شما ارائه دهد.
اگر دنبال چنین دورهای میگردید، پیشنهاد ما به شما دوره پردازش تصویر و ویدیو آکادمی همراه است. با این آموزش، شما میتوانید به راحتی، دادههای بصری را به شکلی خلاقانه ویرایش کنید.
در این دوره پس از آشنایی با مفاهیم اولیه و پایه، فیلترهای مورد نیاز برای کارهای مختلف پردازشی را یاد گرفته و سپس عناوین دیگری مثل ادغام چند تصویر، نمایش تصویر به کمک هرمهای پردازش و فشردهسازی مدیا آشنایی کامل پیدا میکنید.

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

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

هر روز هزاران ابزار و پلتفرم جدید با برچسب هوش مصنوعی معرفی میشوند؛ برخی مسیر کار و زندگی را متحول میکنند و برخی دیگر بعد از مدتی به فراموشی سپرده میشوند. در این میان، تشخیص اینکه کدام ابزار میتواند در سال ۲۰۲۵ واقعا به کارتان بیاید، چالشی است که همه کاربران با آن رو به […]

اضافه شدن هوش مصنوعی به تولید محتوا، ترکیبی برنده و شگفتانگیز ساخته و حالا ساخت یک ویدیوی چند بعدی جذاب فقط به چند دقیقه زمان نیاز دارد. اگر چند سال پیش ساخت یک ویدئوی خلاقانه به تیمی حرفهای، نرمافزارهای پیچیده و ساعتها زمان نیاز داشت، امروز ابزارهایی مثل Vidu AI این فرآیند را به چند […]

تبلیغات مؤثر همواره یکی از ارکان اصلی موفقیت برندها بوده است و در این میان، تیزرهای تبلیغاتی به دلیل قدرت تأثیرگذاری در کوتاهترین زمان، جایگاهی ویژه دارند. در گذشته، ساخت چنین ویدیوهایی نیازمند هزینههای بالا، تجهیزات پیشرفته و تیمهای متخصص بود؛ اما امروز با پیشرفت هوش مصنوعی، مسیر جدیدی پیش روی کسبوکارها قرار گرفته است. […]

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