1. 产品
  2.   图片
  3.   Python
  4.   Sikit Image
 
  

用于图像的开源 Python API

通过 Python API 对图像进行科学图像分析、过滤和恢复。

Sikit-Image 是一个用于图像处理的开源 Python API。该 API 在 Python 中提供了广泛的图像处理例程。使用 API,您可以从特定、科学和通用图像中提取数据,使用 NumPy 操作进行图像处理,生成结构元素,阻止图像视图,操作曝光和颜色通道,管理边缘和线条以及执行几何变换。

此外,API 允许过滤和恢复图像。您可以删除灰度图像中的小尺寸对象、使用均值过滤器、usharp 遮罩等。不仅如此,API 还允许更多功能来操作图像。

Previous Next

Sikit-Image 入门

安装 Sikit-Image 的推荐方法是通过 Pip。请使用以下命令安装 Sikit-Image。

通过 Pip 安装 Sikit-Image

pip install scikit-image

通过 Python 操作曝光和颜色通道

Sikit-Image API 允许以编程方式处理图像的颜色和曝光。您可以将 RGB 图像转换为灰度图像或 HSV 图像。您可以处理直方图匹配、免疫组织化学染色颜色分离、灰度图像着色、直方图均衡、伽马和对数对比度调整、过滤区域最大值以及使灰度过滤器适应 RGB 图像

使用免费 Python API 的几何变换

Sikit-Image API 允许以编程方式操作图像的颜色和曝光。您可以将 RGB 图像转换为灰度图像或 HSV 图像。您可以处理直方图匹配、免疫组织化学染色颜色分离、灰度图像着色、直方图均衡、伽马和对数对比度调整、过滤区域最大值以及使灰度过滤器适应 RGB 图像

通过Python进行几何变换

# 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 进行图像过滤和恢复

Scikit-Image 库允许开发人员以编程方式过滤和恢复图像。您可以使用顶帽过滤器从灰度图像中删除小对象、对图像使用 windows 函数、使用均值过滤器、使用非锐化遮罩、使用图像反卷积等。

通过Python实现图像过滤

# 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()
 中国人