بالش کتابخانه تصویربرداری پایتون است که به صورت رایگان و منبع باز یک کتابخانه اضافی برای زبان برنامه نویسی Python است که پشتیبانی از باز کردن ، دستکاری و ذخیره در پسوندهای مختلف را اضافه می کند.
بیایید شروع کنیم
مهمترین کلاس در کتابخانه تصویربرداری پایتون کلاس تصویر است که در ماژول با همان نام تعریف شده است.
ما از open () به <استفاده می کنیم قوی> باز تصویر در فهرست محلی ما همانطور که در زیر نشان داده شده است ؛
>>> sample = Image.open ( ‘sample.jpg’ )
ساده است ، شما قبلاً تصویری با <بالش ، اکنون می توانید با آن کاری پردازش تصویر انجام دهید ، همچنین می توانید نوع تصویری را که بارگذاری کرده ایم بررسی کنید ؛
<< span class = "hljs-class"> class ‘ PIL . JpegImagePlugin . JpegImageFile ‘>
می توانید ویژگی تصویر خود را مانند شکل ، اندازه و حالت رنگ مطابق شکل زیر مشاهده کنید
“JPEG”
>>> نمونه. اندازه
( 250 ، 283 )
>>> نمونه
‘RGB’
همچنین می توانید تصویری را که به تازگی خوانده اید را روی صفحه نمایش دهید ، با استفاده از روش نمایش
خروجی
تبدیل فرمت تصویر
پس از باز کردن تصویر ، کارتان تمام شد با کتابخانه بالش در یک قالب می توانید دوباره آن را در قالب های دیگر مانند از
سیستم های وارد کردن
از PIL وارد کردن تصویر
jpg_images = [تصویر برای تصویر در os.listdir () اگر image.endswith ( ‘.jpg “) ]
برای jpg_image در jpg_images: امتحان کنید : new_name = jpg_image.split ( ‘.’ ) [ 0 ] + ‘.png’ Image.open (jpg_image). ذخیره (نام_ جدید) به جز خطای IOError as : print ( ‘Couldn’ t read {} ‘ .format (jpg_image))
هنگامی که کد فوق را بر روی فهرست پروژه ای که متشکل از تصاویر است اجرا کردید با فرمت jpg ، همه آنها را باز می کند و به شکل png تبدیل می شود ، همانطور که در زیر نشان داده شده است ، می توانید همین روند را برای سایر تبدیل ها نیز تکرار کنید.
برش تصویر
بالش همچنین می تواند برای انجام برش تصویر استفاده شود که به موجب آن می توانید با تعیین مختصات مستطیل فرعی مستطیل فرعی از یک تصویر داده شده استخراج کنید.
بنابراین قبل از انجام برداشت ممکن است بخواهید مساحت مستطیل را بدست آورید تا مختصات جفت ای را که می خواهید برش دهید بدست آورید ، با نمایش دادن به صفحه می توانید به راحتی آنها را مشاهده کنید.
>>> تصویر = Image.open ( ‘sample.png’ )
>>> طناب = ( 50 ، 50 ، 300 ، 300 )
>>> تصویر جدید = picture.crop (طناب)
>>> new_picture.show ()
تولید
به موجب آن دو نقطه اول (x، y) <است / strong> از نقطه مورب بالا سمت چپ و دو نقطه بعدی (x2، y2) نیز نقطه مورب از پایین سمت راست هستند.
تحول هندسی
با <بالش می توانیم مقداری تغییر شکل هندسی بر روی تصویر خود انجام دهیم شامل تغییر اندازه اندازه تصویر و چرخش ها.
این دانش هنگام ایجاد داده برای یادگیری عمیق با تبدیل یک تصویر برای تشکیل تعداد دیگری از تصاویر از زوایای مختلف ، نقش زیادی دارد.
تغییر اندازه تصویر
>>> تصویر = Image.open ( ‘sample.png’ )
>>> resized_image = image.resize (( 200 ، 200 ))
>>> resized_image.save ( ‘resized.png’ )
هنگامی که کد فوق را اجرا می کنید باید یک تصویر تازه تغییر یافته در فهرست محلی خود مشاهده کنید با ابعاد 200 200 200 .
چرخش تصویر
>>> تصویر = Image.open ( ‘sample.png’ )
>>> rotated_img = image.rotate ( 80 )
>>> rotated_img.save ( ‘rotated_img.png’ )
از ویژگی چرخش برای تولید تصاویر 360 درجه استفاده کنید < / strong> از یک تصویر در زوایای مختلف ، انجام این روش به ما کمک می کند تا به اندازه داده هایی تولید کنید که به طور بالقوه می توانید برای آموزش مدل یادگیری عمیق خود استفاده کنید.
Image generator.py
images = [ ‘sample.jpg’ ]
برای img در تصاویر: امتحان کنید : org_img = Image.open (img) برای زاویه در محدوده ( 1 ، 361 ): image_name = str (angle) + ‘.jpg’ new_img = org_img.rotate (زاویه) new_img.save (نام تصویر) به جز IOError: print ( ‘Couldn’ t read {} ‘ .format (img))
پس از اجرای اسکریپت فوق ، باید 360 360 را ببینید / strong> تصاویر همان تصویر اصلی در زوایای مختلف همانطور که در زیر نشان داده شده است.
>h / h2>
فیلتر کردن تکنیکی برای اصلاح یا افزایش تصویر است. به عنوان مثال ، می توانید برای تأکید بر ویژگیهای خاص تصویری را فیلتر کنید یا سایر ویژگی ها را حذف کنید.
فیلتر کردن تصویر برای بسیاری از برنامه ها از جمله صاف کردن ، شفاف سازی ، از بین بردن نویز و تشخیص لبه مفید است.
فیلترهای زیادی در Pillow Library از جمله BLUR ، BoxBlur ، CONTOUR ، FIND_EDGES ، Filter ، GaussianBlur ، Kernel ، MaxFilter ، MedianFilter ، SHARPEN ، SMOOTH و غیره موجود است
مثال استفاده .
بیایید سعی کنیم با استفاده از فیلتر FIND_EDGES فیلتر
خروجی
می توانید با فیلترهای مختلف در پایتون بسته به آنچه می خواهید انجام دهید.
خواندن تصویر Fr om open file
همچنین می توانید از یک بالش برای خواندن تصویر از یک شی from پرونده پایتون استفاده کنید همانطور که در زیر نشان داده شده است.
>>> تصویر = Image.open (باز ( ‘brain.jpeg’ ، ‘rb’))
خواندن تصویر از URL
در این مورد شما باید از Pillow در ترکیب با درخواست ها استفاده کنید ، درخواست ها باید دریافت درخواست ها را به سرور ارسال کنند تا بایت خام از تصویر و بالش آن بایت ها را می خوانند.
>>> از PIL وارد کردن تصویر
>>> url = ‘https://i1.wp.com/kalebujordan.com/wp-content/uploads/2020/04/code-1084923.png’
>>> raw = daxwaz.get (آدرس اینترنتی ، جریان = درست). رسم
>>> Image.open (raw) .show ()
Output
ایجاد تصاویر جدید
با Pillow می توانید یک تصویر خالی جدید نیز ایجاد کنید ، ممکن است به آن نیاز داشته باشید برای اهداف مختلف ، از Image.new () برای ایجاد یک تصویر کاملاً جدید استفاده کنید.
- مثال کاربرد: < div class = "code-container" readability = "10" >>>> from PIL import Image
>>> new_img = Image.new ( ‘RGB’ ، ( 500 ، 500 ) ، “span>” آبی “ )
>>> new_img.show ()
> رسم تصاویر در “R” / > Ples strong>
همچنین می توان از بالش برای رسم مستطیل روی تصاویر استفاده کرد ، این معمولاً در تشخیص شی applied اعمال می شود و به موجب آن می توانید یک جعبه مستطیل شکل روی یک شی detected شناسایی شده ترسیم کنید.
بیایید سعی کنیم یک جعبه مستطیل شکل درون یک تصویر خالی ترسیم کنیم
>>> new_img = Image.new ( ‘RGB’ ، ( 400 ، 400 ) ، “سیاه” )
>>> مداد = ImageDraw.Draw (new_img)
>>> pencil.rectangle (( 200 ، 50 ، 300 ، 300 )) ، fill = “سبز” )
>>> new_img.show ()
خروجی
همچنین می توانیم از Pillow Library برای ترسیم متن بر روی تصاویر استفاده کنیم
>>> new_img = Image.new ( ‘RGB’ ، ( 200 ، 200 ) ، “سیاه” )
>>> font = ImageFont.load_default ()
>>> مداد = ImageDraw.Draw (new_img)
>>> pencil.text (( 100 ، 100 ) ، “سلام به جهان” ، font = font ، fill = ‘blue’ )
>>> new_img.show ()
خروجی
خوب این همه چیز امروز است ، امیدوارم که برای شما مفید واقع شده باشد اکنون خجالتی نباشید ، آن را با توسعه دهنده دیگر خود به اشتراک بگذارید
مقاله اصلی را می توان در kalebujordan.com یافت.
در صورت هر گونه پیشنهاد ، اظهار نظر یا مشکل آن را در جامعه حذف کنید و من ASAP به شما پاسخ خواهم داد. < div class = "share"> این داستان را به اشتراک بگذارید
داستان های من را بخوانید
من مهندس مکاترونیک هستم وهم آور | Pro Python Developer | علاقه مندان به هوش مصنوعی
مرتبط
1 واکنش
داستان قبل از شکلک
برچسب ها
1 واکنش
داستان قبل از شکلک