Görüntüler için Açık Kaynak Python API'sı
Python API ile Bilimsel Görüntü Analizi, Görüntülerin Filtrelenmesi ve Restorasyonu.
Sikit-Image, görüntü işleme için açık kaynaklı bir Python API'sidir. API, Python'da çok çeşitli görüntü işleme rutinleri sağlar. API'yi kullanarak belirli, bilimsel ve genel amaçlı görüntülerden veri çıkarabilir, görüntü işleme için NumPy işlemlerini kullanabilir, yapılandırma öğeleri oluşturabilir, görüntülerde görünümleri engelleyebilir, pozlama ve renk kanallarını değiştirebilir, kenarları ve çizgileri yönetebilir ve geometrik dönüşümler gerçekleştirebilirsiniz.
Ayrıca API, görüntülerin filtrelenmesine ve geri yüklenmesine izin verir. Gri tonlamalı görüntülerdeki küçük ölçekli nesneleri kaldırabilir, ortalama filtreler, usharp maskeleme ve daha fazlasını kullanabilirsiniz. Sadece bu değil, API çok daha fazla özelliğin görüntüleri manipüle etmesine izin verir.
Sikit-Image'a Başlarken
Sikit-Image'ı kurmanın önerilen yolu Pip'tir. Sikit-Image'ı yüklemek için lütfen aşağıdaki komutu kullanın.
Sikit-Image'ı Pip ile Kurun
pip install scikit-image
Pozlama ve Renk Kanallarını Python ile Yönetin
Sikit-Image API, görüntülerin renk ve pozlamasını programlı olarak değiştirmeye izin verir. RGB Görüntüyü gri tonlamalı bir görüntüye veya HSV görüntüsüne dönüştürebilirsiniz. Histogram eşleştirme, İmmünohistokimyasal boyama renk ayrımı, gri tonlamalı görüntüleri renklendirme, histogram Eşitleme, gama ve log kontrast ayarı, bölgesel maksimumları filtreleme ve gri tonlamalı filtreleri RGB görüntülere uyarlama üzerinde çalışabilirsiniz.
Ücretsiz Python API Kullanan Geometrik Dönüşümler
Sikit-Image API, görüntülerin renklerini ve pozlarını programlı olarak değiştirmeye izin verir. Bir RGB Görüntüsünü gri tonlamalı bir görüntüye veya HSV görüntüsüne dönüştürebilirsiniz. Histogram eşleştirme, İmmünohistokimyasal boyama renk ayrımı, gri tonlamalı görüntüleri renklendirme, histogram Eşitleme, gama ve log kontrast ayarı, bölgesel maksimumları filtreleme ve gri tonlamalı filtreleri RGB görüntülere uyarlama üzerinde çalışabilirsiniz.
Python ile Geometrik Dönüşümler
# 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()
Python ile Görüntü Filtreleme ve Geri Yükleme
Scikit-Image kitaplığı, geliştiricilerin görüntüleri programlı olarak filtrelemesine ve geri yüklemesine olanak tanır. Bir silindir şapka filtresiyle gri tonlamalı görüntülerden küçük nesneleri kaldırabilir, görüntülerle pencere işlevlerini kullanabilir, ortalama filtreler kullanabilir, keskin olmayan maskeleme kullanabilir, görüntü ters evrişimini kullanabilir ve daha fazlasını yapabilirsiniz.
Python ile Görüntü Filtreleme
# 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()