ছবির জন্য ওপেন সোর্স পাইথন এপিআই
Python API এর মাধ্যমে বৈজ্ঞানিক চিত্র বিশ্লেষণ, ফিল্টারিং এবং চিত্র পুনরুদ্ধার।
সিকিট-ইমেজ ইমেজ প্রসেসিংয়ের জন্য একটি ওপেন সোর্স পাইথন এপিআই। API পাইথনে ইমেজ প্রসেসিং রুটিনের একটি বিস্তৃত পরিসর প্রদান করে। API ব্যবহার করে, আপনি নির্দিষ্ট, বৈজ্ঞানিক এবং সাধারণ উদ্দেশ্যের ছবি থেকে ডেটা বের করতে পারেন, ইমেজ ম্যানিপুলেশনের জন্য NumPy ক্রিয়াকলাপ ব্যবহার করতে পারেন, কাঠামোগত উপাদান তৈরি করতে পারেন, চিত্রগুলিতে ভিউ ব্লক করতে পারেন, এক্সপোজার এবং রঙের চ্যানেলগুলি পরিচালনা করতে পারেন, প্রান্ত এবং লাইনগুলি পরিচালনা করতে পারেন এবং জ্যামিতিক রূপান্তর করতে পারেন।
উপরন্তু, API ফিল্টারিং এবং ছবি পুনঃস্থাপনের অনুমতি দেয়। আপনি গ্রেস্কেল চিত্রগুলিতে ছোট আকারের বস্তুগুলি সরাতে পারেন, গড় ফিল্টার ব্যবহার করতে পারেন, মাস্কিং এবং আরও অনেক কিছু করতে পারেন৷ শুধু তাই নয়, এপিআই আরও অনেক ফিচারকে ইমেজ ম্যানিপুলেট করার অনুমতি দেয়।
সিকিট-ইমেজ দিয়ে শুরু করা
সিকিট-ইমেজ ইনস্টল করার প্রস্তাবিত উপায় হল পিপ এর মাধ্যমে। সিকিট-ইমেজ ইনস্টল করতে অনুগ্রহ করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
পিপের মাধ্যমে সিকিট-ইমেজ ইনস্টল করুন
pip install scikit-image
Python এর মাধ্যমে এক্সপোজার এবং কালার চ্যানেল ম্যানিপুলেট করুন
সিকিট-ইমেজ এপিআই ইমেজগুলির রঙ এবং এক্সপোজারকে প্রোগ্রাম্যাটিকভাবে ম্যানিপুলেট করার অনুমতি দেয়। আপনি একটি গ্রেস্কেল ইমেজ বা এইচএসভি ইমেজে রূপান্তর এবং আরজিবি ইমেজ করতে পারেন। আপনি হিস্টোগ্রাম ম্যাচিং, ইমিউনোহিস্টোকেমিক্যাল স্টেনিং কালার সেপারেশন, গ্রে-স্কেল ইমেজ টিন্টিং, হিস্টোগ্রাম ইকুয়ালাইজেশন, গামা এবং লগ কনট্রাস্ট অ্যাডজাস্টমেন্ট, রিজিওনাল ম্যাক্সিমা ফিল্টারিং এবং গ্রে-স্কেল ফিল্টারগুলিকে আরজিবি ইমেজের সাথে মানিয়ে নেওয়ার উপর কাজ করতে পারেন।
ফ্রি পাইথন API ব্যবহার করে জ্যামিতিক রূপান্তর
সিকিট-ইমেজ এপিআই প্রোগ্রামগতভাবে ছবিগুলির রঙ এবং এক্সপোজারকে ম্যানিপুলেট করার অনুমতি দেয়। আপনি একটি RGB চিত্রকে একটি গ্রেস্কেল চিত্র বা HSV ছবিতে রূপান্তর করতে পারেন। আপনি হিস্টোগ্রাম ম্যাচিং, ইমিউনোহিস্টোকেমিক্যাল স্টেনিং কালার সেপারেশন, গ্রে-স্কেল ইমেজ টিন্টিং, হিস্টোগ্রাম ইকুয়ালাইজেশন, গামা এবং লগ কনট্রাস্ট অ্যাডজাস্টমেন্ট, রিজিওনাল ম্যাক্সিমা ফিল্টারিং এবং গ্রে-স্কেল ফিল্টারগুলিকে আরজিবি ইমেজের সাথে মানিয়ে নেওয়ার উপর কাজ করতে পারেন।
পাইথনের মাধ্যমে জ্যামিতিক রূপান্তর সম্পাদন করুন
# First we create a transformation using explicit parameters:
tform = transform.SimilarityTransform(scale=1, rotation=math.pi/2,
translation=(0, 1))
print(tform.params)
# Alternatively you can define a transformation by the transformation matrix itself:
matrix = tform.params.copy()
matrix[1, 2] = 2
tform2 = transform.SimilarityTransform(matrix)
# apply forward & inverse coordinate transformations b/t the source & destination coordinate systems:
coord = [1, 0]
print(tform2(coord))
print(tform2.inverse(tform(coord)))
# Geometric transformations to warp images:
text = data.text()
tform = transform.SimilarityTransform(scale=1, rotation=math.pi/4,
translation=(text.shape[0]/2, -100))
rotated = transform.warp(text, tform)
back_rotated = transform.warp(rotated, tform.inverse)
fig, ax = plt.subplots(nrows=3)
ax[0].imshow(text, cmap=plt.cm.gray)
ax[1].imshow(rotated, cmap=plt.cm.gray)
ax[2].imshow(back_rotated, cmap=plt.cm.gray)
for a in ax:
a.axis('off')
plt.tight_layout()
পাইথনের মাধ্যমে চিত্র ফিল্টারিং এবং পুনরুদ্ধার
স্কিট-ইমেজ লাইব্রেরি ডেভেলপারদের প্রোগ্রামে ছবি ফিল্টার এবং পুনরুদ্ধার করতে দেয়। আপনি টপ হ্যাট ফিল্টার দিয়ে গ্রেস্কেল ইমেজ থেকে ছোট অবজেক্ট মুছে ফেলতে পারেন, ইমেজের সাথে উইন্ডোজ ফাংশন ব্যবহার করতে পারেন, গড় ফিল্টার ব্যবহার করতে পারেন, আনশার্প মাস্কিং ব্যবহার করতে পারেন, ইমেজ ডিকনভোলিউশন ব্যবহার করতে পারেন এবং আরও অনেক কিছু।
পাইথনের মাধ্যমে চিত্র ফিল্টারিং সঞ্চালন করুন
# Let us load an image available through scikit-image’s data registry.
image = data.astronaut()
image = color.rgb2gray(image)
# Let us blur this image with a series of uniform filters of increasing size.
blurred_images = [ndi.uniform_filter(image, size=k) for k in range(2, 32, 2)]
img_stack = np.stack(blurred_images)
fig = px.imshow(
img_stack,
animation_frame=0,
binary_string=True,
labels={'animation_frame': 'blur strength ~'}
)
plotly.io.show(fig)
# Plot blur metric
B = pd.DataFrame(
data=np.zeros((len(blurred_images), 3)),
columns=['h_size = 3', 'h_size = 11', 'h_size = 30']
)
for ind, im in enumerate(blurred_images):
B.loc[ind, 'h_size = 3'] = measure.blur_effect(im, h_size=3)
B.loc[ind, 'h_size = 11'] = measure.blur_effect(im, h_size=11)
B.loc[ind, 'h_size = 30'] = measure.blur_effect(im, h_size=30)
B.plot().set(xlabel='blur strength (half the size of uniform filter)',
ylabel='blur metric');
plt.show()