छवियों के लिए ओपन सोर्स पायथन एपीआई

पायथन एपीआई के माध्यम से छवियों का वैज्ञानिक छवि विश्लेषण, फ़िल्टरिंग और बहाली।

सिकित-इमेज इमेज प्रोसेसिंग के लिए एक ओपन सोर्स पायथन एपीआई है। एपीआई पायथन में इमेज प्रोसेसिंग रूटीन की एक विस्तृत श्रृंखला प्रदान करता है। एपीआई का उपयोग करके, आप विशिष्ट, वैज्ञानिक और सामान्य प्रयोजन की छवियों से डेटा निकाल सकते हैं, छवि हेरफेर के लिए NumPy संचालन का उपयोग कर सकते हैं, संरचनात्मक तत्व उत्पन्न कर सकते हैं, छवियों पर विचारों को अवरुद्ध कर सकते हैं, एक्सपोज़र और रंग चैनलों में हेरफेर कर सकते हैं, किनारों और रेखाओं का प्रबंधन कर सकते हैं और ज्यामितीय परिवर्तन कर सकते हैं।

इसके अलावा, एपीआई छवियों को फ़िल्टर करने और पुनर्स्थापित करने की अनुमति देता है। आप ग्रेस्केल छवियों में छोटे पैमाने की वस्तुओं को हटा सकते हैं, माध्य फिल्टर का उपयोग कर सकते हैं, यूशर्प मास्किंग, और बहुत कुछ कर सकते हैं। इतना ही नहीं, एपीआई छवियों में हेरफेर करने के लिए और अधिक सुविधाओं की अनुमति देता है।

Previous Next

सिकित-इमेज के साथ शुरुआत करना

सिकित-इमेज को स्थापित करने का अनुशंसित तरीका पिप के माध्यम से है। सिकित-इमेज इंस्टाल करने के लिए कृपया निम्न कमांड का उपयोग करें।

पिप के माध्यम से सिकित-इमेज स्थापित करें

pip install scikit-image

पायथन के माध्यम से एक्सपोजर और कलर चैनल में हेरफेर करें

सिकिट-इमेज एपीआई रंग और छवियों के एक्सपोजर को प्रोग्रामेटिक रूप से हेरफेर करने की अनुमति देता है। आप आरजीबी छवि को ग्रेस्केल छवि या एचएसवी छवि में परिवर्तित कर सकते हैं। आप हिस्टोग्राम मिलान, इम्यूनोहिस्टोकेमिकल स्टेनिंग कलर सेपरेशन, टिंटिंग ग्रे-स्केल इमेज, हिस्टोग्राम इक्वलाइजेशन, गामा और लॉग कंट्रास्ट एडजस्टमेंट, क्षेत्रीय मैक्सिमा को फ़िल्टर करने और आरजीबी इमेज के लिए ग्रे-स्केल फिल्टर को अपनाने पर काम कर सकते हैं।

फ्री पायथन एपीआई का उपयोग करके ज्यामितीय परिवर्तन

सिकित-इमेज एपीआई प्रोग्रामेटिक रूप से छवियों के रंग और एक्सपोजर में हेरफेर करने की अनुमति देता है। आप 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()
 हिन्दी