Sử dụng Python để tạo hình ảnh theo thang độ xám DICOM
Tạo ứng dụng Python cho hình ảnh và ảnh DICOM thang độ xám thông qua API máy chủ
Cách chia thang độ xám cho hình ảnh và ảnh DICOM bằng Python
Màu sắc tươi sáng thường được coi là bản chất của những bức ảnh lộng lẫy. Nhưng điều gì sẽ xảy ra nếu khả năng in màu không phải là một lựa chọn? Trong những trường hợp như vậy, nảy sinh nhu cầu chuyển ảnh màu sang thang độ xám và đáng ngạc nhiên là điều này không nhất thiết làm ảnh hưởng đến tác động của nó. Thông thường, việc chuyển đổi từ màu đầy đủ sang thang độ xám bản thân nó đã là một kỹ thuật đầy tính nghệ thuật, làm tăng thêm sự hấp dẫn cho thiết kế của bạn. Quá trình này, cùng với việc loại bỏ thông tin màu sắc, có thể đóng vai trò là đồng phạm của bạn, làm nổi bật các chi tiết hình ảnh, làm nổi bật kết cấu của các bề mặt và dàn dựng một bản giao hưởng thị giác giữa ánh sáng và bóng tối - từ đó tạo ra hiệu ứng hình ảnh đặc biệt. Để chuyển đổi hình ảnh DICOM sang thang độ xám, chúng tôi sẽ sử dụng Aspose.Imaging for Python via .NET API là API chuyển đổi và thao tác hình ảnh giàu tính năng, mạnh mẽ và dễ sử dụng cho nền tảng Python. Bạn có thể cài đặt nó bằng lệnh sau từ lệnh hệ thống của mình.
Dòng lệnh hệ thống
>> pip install aspose-imaging-python-net
Các bước để có Thang độ xám DICOM qua Python
Bạn cần aspose-imaging-python-net để thử quy trình công việc sau trong môi trường của riêng bạn.
- Tải tệp DICOM bằng phương pháp Image.Load
- Hình ảnh thang độ xám;
- Lưu hình ảnh nén vào đĩa ở định dạng Aspose.Imaging được hỗ trợ
yêu cầu hệ thống
Aspose.Imaging cho Python được hỗ trợ trên tất cả các hệ điều hành chính. Chỉ cần đảm bảo rằng bạn có các điều kiện tiên quyết sau.
- Microsoft Windows/Linux với .NET Core Runtime.
- Trình quản lý gói Python và PyPi.
Hình ảnh thang độ xám DICOM - Python
from aspose.imaging import RasterImage, Image, IMultipageImage | |
from aspose.imaging.imageoptions import PngOptions | |
from aspose.pycore import as_of, is_assignable | |
import os | |
if 'TEMPLATE_DIR' in os.environ: | |
templates_folder = os.environ['TEMPLATE_DIR'] | |
else: | |
templates_folder = r"C:\Users\USER\Downloads\templates" | |
delete_output = 'SAVE_OUTPUT' not in os.environ | |
def delete_file(file): | |
if delete_output: | |
os.remove(file) | |
def grayscale_images(): | |
obj_init = [] | |
obj_init.append("jpg") | |
obj_init.append("png") | |
obj_init.append("bmp") | |
obj_init.append("apng") | |
obj_init.append("dicom") | |
obj_init.append("jp2") | |
obj_init.append("j2k") | |
obj_init.append("tga") | |
obj_init.append("webp") | |
obj_init.append("tiff") | |
obj_init.append("gif") | |
obj_init.append("ico") | |
raster_formats = obj_init | |
obj_init2 = [] | |
obj_init2.append("svg") | |
obj_init2.append("otg") | |
obj_init2.append("odg") | |
obj_init2.append("eps") | |
obj_init2.append("wmf") | |
obj_init2.append("emf") | |
obj_init2.append("wmz") | |
obj_init2.append("emz") | |
obj_init2.append("cmx") | |
obj_init2.append("cdr") | |
vector_formats = obj_init2 | |
all_formats = raster_formats | |
all_formats.extend(vector_formats) | |
for format_ext in all_formats: | |
input_file = os.path.join(templates_folder, f"template.{format_ext}") | |
if not os.path.exists(input_file): | |
continue | |
is_vector_format = format_ext in vector_formats | |
if is_vector_format: | |
input_file = rasterize_vector_image(format_ext, input_file) | |
output_file = os.path.join(templates_folder, f"grayscale_{format_ext}.png") | |
print(f"Processing {format_ext}") | |
# explicit type casting from Image to RasterImage | |
with as_of(Image.load(input_file), RasterImage) as image: | |
# Additional code examples can be found at | |
# https://apireference.aspose.com/imaging/python-net/aspose.imaging/rasterimage/methods/grayscale | |
image.grayscale() | |
multi_page = None | |
# if image implements an IMultipageImage interface | |
if is_assignable(image, IMultipageImage): | |
multi_page = as_of(image, IMultipageImage) | |
if multi_page is not None and multi_page.page_count > 1: | |
page_index = 0 | |
for page in multi_page.pages: | |
file_name = f"grayscale_page{page_index}_{format_ext}.png" | |
page.save(templates_folder + file_name, PngOptions()) | |
delete_file(templates_folder + file_name) | |
page_index += 1 | |
else: | |
image.save(output_file, PngOptions()) | |
delete_file(output_file) | |
if is_vector_format: | |
delete_file(input_file) | |
def rasterize_vector_image(format_ext, input_file): | |
output_file = os.path.join(templates_folder, f"rasterized.{format_ext}.png") | |
with Image.load(input_file) as image: | |
image.save(output_file, PngOptions()) | |
return output_file | |
grayscale_images() |
Giới thiệu về Aspose.Imaging cho API Python
Aspose.Imaging API là một giải pháp xử lý hình ảnh để tạo, sửa đổi, vẽ hoặc chuyển đổi hình ảnh (ảnh) trong các ứng dụng. Nó cung cấp: xử lý hình ảnh đa nền tảng, bao gồm nhưng không giới hạn ở chuyển đổi giữa các định dạng hình ảnh khác nhau (bao gồm xử lý hình ảnh nhiều trang hoặc nhiều khung hình đồng nhất), các sửa đổi như vẽ, làm việc với đồ họa nguyên thủy, chuyển đổi (thay đổi kích thước, cắt, lật và xoay , binarization, thang độ xám, điều chỉnh), các tính năng thao tác hình ảnh nâng cao (lọc, phối màu, tạo mặt nạ, giải mã) và các chiến lược tối ưu hóa bộ nhớ. Đây là một thư viện độc lập và không phụ thuộc vào bất kỳ phần mềm nào cho các thao tác hình ảnh. Người ta có thể dễ dàng thêm các tính năng chuyển đổi hình ảnh hiệu suất cao với các API gốc trong các dự án. Đây là các API tại chỗ 100% riêng tư và hình ảnh được xử lý tại máy chủ của bạn.Thang độ xám DICOM s qua Ứng dụng Trực tuyến
Tài liệu về thang độ xám DICOM bằng cách truy cập [trang web Bản trình diễn trực tiếp] của chúng tôi ( https://products.aspose.app/imaging/image-grayscale) . Bản demo trực tiếp có những lợi ích sau
DICOM Những gì là DICOM Định dạng tệp
DICOM là từ viết tắt của Digital Imaging and Communications in Medicine, liên quan đến lĩnh vực Tin học Y tế. DICOM là sự kết hợp giữa định nghĩa định dạng tệp và một giao thức truyền thông mạng. DICOM sử dụng phần mở rộng .DCM. .DCM tồn tại ở hai định dạng khác nhau, tức là định dạng 1.x và định dạng 2.x. Định dạng DCM 1.x còn có sẵn trong hai phiên bản bình thường và mở rộng. DICOM được sử dụng để tích hợp các thiết bị hình ảnh y tế như máy in, máy chủ, máy quét, v.v. từ các nhà cung cấp khác nhau và cũng chứa dữ liệu nhận dạng của từng bệnh nhân để tạo tính duy nhất. Các tệp DICOM có thể được chia sẻ giữa hai bên nếu họ có khả năng nhận dữ liệu hình ảnh ở định dạng DICOM. Phần giao tiếp của DICOM là giao thức lớp ứng dụng và sử dụng TCP / IP để giao tiếp giữa các thực thể. Các giao thức HTTP và HTTPS được sử dụng cho các dịch vụ web của DICOM. Các phiên bản được hỗ trợ bởi các dịch vụ web là 1.0, 1.1, 2 hoặc mới hơn.
Đọc thêmCác định dạng thang độ xám được hỗ trợ khác
Sử dụng Python, người ta có thể dễ dàng chỉnh thang độ xám các định dạng khác nhau bao gồm.