- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在我作为研究生的工作中,我捕捉显微镜图像并使用 python 将它们保存为原始 tif。我想添加元数据,例如我正在使用的显微镜的名称、放大倍数和成像激光波长。这些细节对于我如何对图像进行后处理都很重要。
我应该可以用 tif 做到这一点,对吧?因为它有标题?
我能够在 PIL 图像中添加信息:
im.info['microscope'] = 'george'
但是当我保存并加载该图像时,我添加的信息消失了。
我愿意接受所有建议。如果我也有,我将只保存一个包含元数据的单独的 .txt 文件,但将它嵌入到图像中会非常好。
câu trả lời hay nhất
Tifffile 是在 python 中保存带有大量元数据的显微镜图像的一种选择。
它没有很多外部文档,但文档很棒,因此您只需在 python 中键入 help(tifffile) 即可获得大量信息,或者查看 source code .
您可以查看源代码(第 750 行)中的 TiffWriter.save 函数,了解可用于写入元数据的不同关键字参数。
一种是使用Sự miêu tả,它接受一个字符串。当您阅读图像时,它将显示为标签“ImageDescription”。
另一个是使用 extratags 参数,它接受一个元组列表。这允许您写入 TIFF.TAGS() 中存在的任何标签名称。最简单的方法之一是将它们写成字符串,因为这样您就不必指定长度。
您还可以使用 ijmetadata 编写 ImageJ 元数据,源代码 đây 中列出了可接受的类型。
例如,如果您编写以下内容:
nhập json
nhập numpy dưới dạng np
import tifffile
im = np.random.randint(0, 255, size=(150, 100), dtype=np.uint8)
# Description
description = "This is my description"
# Extratags
metadata_tag = json.dumps({"ChannelIndex": 1, "Slice": 5})
extra_tags = [("MicroManagerMetadata", 's', 0, metadata_tag, True),
("ProcessingSoftware", 's', 0, "my_spaghetti_code", True)]
# ImageJ metadata. 'Info' tag needs to be a string
ijinfo = {"InitialPositionList": [{"Label": "Pos1"}, {"Label": "Pos3"}]}
ijmetadata = {"Info": json.dumps(ijinfo)}
# Write file
tifffile.imsave(
save_name,
im,
ijmetadata=ijmetadata,
description=description,
extratags=extra_tags,
)
读图可以看到如下标签:
frames = tifffile.TiffFile(save_name)
page = frames.pages[0]
print(page.tags["ImageDescription"].value)
输出:'这是我的描述'
print(page.tags["MicroManagerMetadata"].value)
输出:{'ChannelIndex': 1, 'Slice': 5}
print(page.tags["ProcessingSoftware"].value)
输出:my_spaghetti_code
关于python - 与 tif 一起保存图像元数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529187/
Tôi muốn hiểu cách hoạt động của phương thức Ruby(). Tôi đã thử tìm kiếm trên Google bằng "phương pháp Ruby" nhưng đó không phải là thứ tôi cần. Tôi cũng đã xem ruby-doc.org nhưng tôi không tìm thấy phương pháp này.
Phương thức Kiểm tra thực hiện tìm kiếm biểu thức chính quy trên chuỗi đã chỉ định và trả về giá trị Boolean cho biết liệu có tìm thấy mẫu phù hợp hay không. Đối tượng tham số object.Test(string) là bắt buộc. luôn luôn là một
Phương thức Thay thế thay thế văn bản được tìm thấy trong tìm kiếm biểu thức chính quy. Đối tượng tham số object.Replace(string1, string2) là bắt buộc. Luôn là tên của đối tượng RegExp.
Phương thức Raise tạo ra một đối tượng lỗi thời gian chạy.Raise(số, nguồn, mô tả, tệp trợ giúp, bối cảnh trợ giúp) Đối tượng tham số phải là
Phương thức Thực thi thực hiện tìm kiếm biểu thức chính quy trên chuỗi đã chỉ định. Đối tượng tham số object.Execute(string) là bắt buộc. Luôn là tên của đối tượng RegExp. sợi dây
Phương thức Clear xóa tất cả các cài đặt thuộc tính của đối tượng Err. object. Đối tượng Clear phải là tên của đối tượng Err. Mô tả Sau khi xử lý lỗi, hãy sử dụng Clear để xóa rõ ràng đối tượng Err. cái này
Phương thức CopyFile sao chép một hoặc nhiều tệp từ vị trí này sang vị trí khác. object.CopyFile đối tượng tham số nguồn, đích [, ghi đè] được yêu cầu
Phương thức Sao chép sao chép tệp hoặc thư mục được chỉ định từ vị trí này sang vị trí khác. đối tượng tham số object.Copy đích [, ghi đè] là bắt buộc. Nên là Tệp hoặc F
Phương thức Close đóng tệp TextStream đang mở. Đối tượng object.Close phải là tên của đối tượng TextStream. Ví dụ sau minh họa cách sử dụng phương thức Close.
Phương thức BuildPath thêm tên vào đường dẫn hiện có. Đối tượng tham số object.BuildPath(path, name) là bắt buộc. Phải là tên của đối tượng FileSystemObject
Phương thức GetFolder trả về đối tượng Thư mục tương ứng với một thư mục trong đường dẫn đã chỉ định. Đối tượng tham số object.GetFolder(folderspec) là bắt buộc. Phải là FileSy
Phương thức GetFileName trả về tệp hoặc thư mục cuối cùng tại đường dẫn đã chỉ định (không phải một phần của đường dẫn ổ đĩa đã chỉ định). Đối tượng tham số object.GetFileName(pathspec) là bắt buộc. nên
Phương thức GetFile trả về một đối tượng File tương ứng với một tệp trong đường dẫn đã chỉ định. Đối tượng tham số object.GetFile(filespec) là bắt buộc. FileSystemObject dự kiến
Phương thức GetExtensionName trả về một chuỗi chứa tên phần mở rộng của thành phần cuối cùng của đường dẫn. Đối tượng tham số object.GetExtensionName(path) là bắt buộc. trả lời
Phương thức GetDriveName trả về một chuỗi chứa tên ổ đĩa trong đường dẫn đã chỉ định. Đối tượng tham số object.GetDriveName(path) là bắt buộc. Đối tượng hệ thống tệp dự kiến
Phương thức GetDrive trả về đối tượng Drive tương ứng với ổ đĩa trong đường dẫn đã chỉ định. object.GetDrive đối tượng tham số drivespec là bắt buộc. Hệ thống tệp dự kiếnO
Phương thức GetBaseName trả về một chuỗi chứa tên cơ sở của tệp (không có phần mở rộng) hoặc thư mục trong đặc tả đường dẫn được cung cấp. Đối tượng tham số object.GetBaseName(path) là bắt buộc
Phương thức GetAbsolutePathName trả về một đường dẫn đầy đủ và được xác định rõ ràng từ đường dẫn đã chỉ định được cung cấp. Đối tượng tham số object.GetAbsolutePathName(pathspec)
Phương thức FolderExists trả về True nếu thư mục được chỉ định tồn tại; nếu không nó sẽ trả về Sai. Cần có đối tượng tham số object.FolderExists(folderspec)
Phương thức FileExists trả về True nếu tệp được chỉ định tồn tại; nếu không nó sẽ trả về Sai. Đối tượng tham số object.FileExists(filespec) là bắt buộc. Phải là FileS
Tôi là một lập trình viên xuất sắc, rất giỏi!