কম্পিউটার

পাইথনে ইমেজ নিয়ে কাজ করছেন?


চিত্র প্রক্রিয়াকরণের জন্য পাইথনের ডিফল্ট লাইব্রেরি হিসাবে সবচেয়ে জনপ্রিয় এবং বিবেচিত একটি হল পিলো। বালিশ হল পাইথন ইমেজ লাইব্রেরি বা পিআইএল-এর একটি আপডেটেড সংস্করণ এবং এটি বিভিন্ন সাধারণ এবং উন্নত ইমেজ ম্যানিপুলেশন কার্যকারিতা সমর্থন করে। এটি অন্যান্য পাইথন লাইব্রেরি যেমন sciPy এবং Matplotlib-এ সহজ ইমেজ সমর্থনের ভিত্তি।

বালিশ ইনস্টল করা

আমরা শুরু করার আগে, আমাদের পাইথন এবং বালিশ দরকার। লিনাক্সের ক্ষেত্রে, বালিশ সম্ভবত ইতিমধ্যেই থাকবে, যেহেতু ফেডোরা, ডেবিয়ান/উবুন্টু এবং আর্চলিনাক্স সহ লিনাক্সের প্রধান স্বাদে আগে পিআইএল থাকা প্যাকেজগুলিতে পিলো অন্তর্ভুক্ত রয়েছে।

এটি ইনস্টল করার সবচেয়ে সহজ উপায় হল পিপ ব্যবহার করা:

pip install pillow

কিভাবে ছবি লোড এবং প্রদর্শন করতে হয়

পাইথন পিলো লাইব্রেরি ব্যবহার করার কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য প্রদর্শনের জন্য প্রথমে আমাদের একটি পরীক্ষার চিত্র প্রয়োজন৷

আমি মূর্তি_অফ_ইউনিটি ফটোটি নমুনা চিত্র হিসাবে ব্যবহার করেছি। ছবিটি ডাউনলোড করুন এবং আপনার বর্তমান কাজের ডিরেক্টরিতে সংরক্ষণ করুন৷

#Load and show an image with Pillow
from PIL import Image

#Load the image
img = Image.open('statue_of_unity.jpg')

#Get basic details about the image
print(img.format)
print(img.mode)
print(img.size)

#show the image
img.show()

ফলাফল

JPEG
RGB
(400, 260)

পাইথনে ইমেজ নিয়ে কাজ করছেন?

উপরের চিত্রটি ইমেজ ক্লাসে open() ফাংশন ব্যবহার করে সরাসরি লোড করা হয়। এটি একটি ইমেজ অবজেক্ট রিটার্ন করে যাতে ইমেজের পিক্সেল ডেটা এবং সেইসাথে ইমেজ সম্পর্কে বিশদ বিবরণ থাকে।

ইমেজের ফরম্যাট প্রপার্টি ইমেজ ফরম্যাট রিপোর্ট করবে (যেমন png, jpeg), মোড পিক্সেল চ্যানেল ফরম্যাট রিপোর্ট করবে (যেমন CMYK বা RGB) এবং সাইজ ইমেজের ডাইমেনশন পিক্সেলে রিপোর্ট করবে (যেমন 400*260)

শো() ফাংশন অপারেটিং সিস্টেম ডিফল্ট অ্যাপ্লিকেশন ব্যবহার করে ছবি প্রদর্শন করবে।

একটি ছবিকে গ্রেস্কেলে রূপান্তর করুন

একটি চিত্রকে গ্রেস্কেলে রূপান্তর করতে, এটি প্রদর্শন করুন এবং তারপরে এটি সংরক্ষণ করুন খুব সহজ, শুধুমাত্র নিম্নলিখিতগুলি করুন:

#Import required library
from PIL import Image
#Read an image & convert it to gray-scale
image = Image.open('statue_of_unity.jpg').convert('L')
#Display image
image.show()
#Save image
image.save('statue_of_unity_gs.jpg')

ফলাফল

পাইথনে ইমেজ নিয়ে কাজ করছেন?

উপরের প্রোগ্রামটি চালানোর পরে, আপনার বর্তমান কার্যকারী ডিরেক্টরিতে একটি ফাইল "statue_of_unity_gs.jpg" তৈরি করা হয়৷

অন্য ইমেজ টাইপে রূপান্তর করুন

এক ধরনের (jpeg) ছবিকে অন্য (বলুন, png) তে রূপান্তর করাও খুব সহজ৷

from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.save('statue_of_unity.png')


একটি নতুন চিত্র ফাইল তৈরি করা হয়েছে এবং আমাদের ডিফল্ট ডিরেক্টরিতে সংরক্ষণ করা হয়েছে৷

একটি চিত্রের আকার পরিবর্তন করুন

আমাদের বর্তমান চিত্র ফাইলের আকার (মাত্রা) হল 400 * 260px। যদি আমরা এটির আকার পরিবর্তন করতে চাই এবং এটিকে 440 * 600px আকারের করতে চাই, তাহলে এটি করা যেতে পারে:

পিআইএল ইমপোর্ট ইমেজ থেকে


image = Image.open('statue_of_unity.jpg')
newImage = image.resize((440, 600))
newImage.save('statue_of_unity_440&600.jpg')


440 *600px আকারের একটি নতুন ফাইল 'statue_of_unit_440*600.jpg' তৈরি করা হয়েছে এবং আপনার বর্তমান কাজের ডিরেক্টরিতে সংরক্ষণ করা হয়েছে৷


পাইথনে ইমেজ নিয়ে কাজ করছেন?



আপনি দেখতে পাচ্ছেন, এটি আমাদের আসল চিত্রটিকে ক্রপ করার পরিবর্তে পছন্দসই মাত্রায় বড় করে, যা আপনি নাও চাইতে পারেন।

যদি আপনি বিদ্যমান চিত্রটি ক্রপ করতে চান, আপনি এটি ব্যবহার করে করতে পারেন,

image.crop(box=None)

একটি ছবি ঘোরান

নীচের প্রোগ্রামটি একটি চিত্র লোড করে, এটি 45 ডিগ্রি ঘোরায় এবং একটি বহিরাগত ভিউয়ার ব্যবহার করে এটি প্রদর্শন করে৷


from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.rotate(45).show()


পাইথনে ইমেজ নিয়ে কাজ করছেন?


থাম্বনেল তৈরি করুন

নীচের প্রোগ্রামটি আপনার বর্তমান কার্যকারী ডিরেক্টরিতে সমস্ত jpeg ছবির 128*128 থাম্বনেল তৈরি করবে৷

from PIL import Image
import glob, os

size = 128, 128

for infile in glob.glob("*.jpg"):
file, ext = os.path.splitext(infile)
image = Image.open(infile)
image.thumbnail(size, Image.ANTIALIAS)
image.save(file + ".thumbnail", "JPEG")


ফলাফল

পাইথনে ইমেজ নিয়ে কাজ করছেন?

'statue_of_unity.jpg' ইমেজ সহ আমার বর্তমান ডিরেক্টরিতে (c:\python\python361) সমস্ত jpeg ফাইলের থাম্বনেইল ফিরিয়ে দেবে।


  1. পাইথনে পিডিএফ ফাইলের সাথে কাজ করছেন?

  2. পাইথনে ইমেজ প্রসেসিং?

  3. পাইথনে আকারের বৈশিষ্ট্যের উপর ভিত্তি করে চিত্রগুলি ফিল্টার করা হচ্ছে?

  4. পাইথন ব্যবহার করে ছবি পড়ছেন?