API Python nguồn mở cho hình ảnh

Phân tích hình ảnh khoa học, lọc và khôi phục hình ảnh thông qua API Python.

Sikit-Image là một API Python mã nguồn mở để xử lý hình ảnh. API cung cấp một loạt các quy trình xử lý hình ảnh bằng Python. Sử dụng API, bạn có thể trích xuất dữ liệu từ các hình ảnh cụ thể, khoa học và mục đích chung, sử dụng các phép toán NumPy để xử lý hình ảnh, tạo các phần tử có cấu trúc, khối chế độ xem trên hình ảnh, thao tác với các kênh màu và độ phơi sáng, quản lý các cạnh và đường và thực hiện các phép biến đổi hình học.

Hơn nữa, API cho phép lọc và khôi phục hình ảnh. Bạn có thể xóa các đối tượng quy mô nhỏ trong hình ảnh thang độ xám, sử dụng bộ lọc trung bình, tạo mặt nạ usharp và hơn thế nữa. Không chỉ vậy, API cho phép nhiều tính năng hơn để thao tác hình ảnh.

Previous Next

Bắt đầu với Sikit-Image

Cách được khuyến nghị để cài đặt Sikit-Image là thông qua Pip. Vui lòng sử dụng lệnh sau để cài đặt Sikit-Image.

Cài đặt Sikit-Image qua Pip

pip install scikit-image

Thao tác các kênh Phơi sáng & Màu sắc qua Python

Sikit-Image API cho phép xử lý màu sắc và độ phơi sáng của hình ảnh theo lập trình.Bạn có thể chuyển đổi Hình ảnh RGB sang hình ảnh thang độ xám hoặc hình ảnh HSV. Bạn có thể làm việc trên so khớp biểu đồ, tách màu nhuộm hóa mô miễn dịch, nhuộm màu cho hình ảnh thang xám, Cân bằng biểu đồ, điều chỉnh độ tương phản gamma và log, lọc vùng tối đa và điều chỉnh các bộ lọc thang xám thành hình ảnh RGB

Biến đổi hình học sử dụng API Python miễn phí

Sikit-Image API cho phép điều khiển màu sắc và độ phơi sáng của hình ảnh theo lập trình. Bạn có thể chuyển đổi Hình ảnh RGB sang hình ảnh thang độ xám hoặc hình ảnh HSV. Bạn có thể làm việc trên so khớp biểu đồ, tách màu nhuộm hóa mô miễn dịch, nhuộm màu cho hình ảnh thang xám, Cân bằng biểu đồ, điều chỉnh độ tương phản gamma và log, lọc vùng tối đa và điều chỉnh các bộ lọc thang xám thành hình ảnh RGB

Thực hiện chuyển đổi sinh học qua 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()

Lọc & khôi phục hình ảnh qua Python

Thư viện Scikit-Image cho phép các nhà phát triển lọc và khôi phục hình ảnh theo chương trình. Bạn có thể xóa các đối tượng nhỏ khỏi hình ảnh thang độ xám bằng bộ lọc mũ trên cùng, sử dụng các chức năng của cửa sổ với hình ảnh, sử dụng bộ lọc trung bình, sử dụng mặt nạ không che, sử dụng giải mã hình ảnh và hơn thế nữa.

Tập hợp hình ảnh thông qua 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()
 Tiếng Việt