- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 ProPhoto RGB 色彩空间中的 TIF 文件。这些是使用 scikit-image 的“imload”方法导入的。但是,当我尝试使用 matplotlib 查看图像数据时,我收到错误消息:
plt.imshow(myImage)
plt.show()
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
值被裁剪为 255 并显示全白图像。 imread 读取的图像数据的错误是正确的。值如下所示:
myImage[0]
array([[60061, 60135, 60673],
[59907, 59983, 60533],
[59931, 60007, 60557],
...,
[60649, 60801, 61147],
[60581, 60743, 61091],
[60647, 60797, 61143]], dtype=uint16)
这些值显然需要缩放以获得范围在 0-255 之间的正确 RGB 值。
当我在 IrfanView 之类的工具中打开图像文件并重新保存时,颜色空间被正确处理为 RGB(可能是因为 IrfanView 正在为我转换它)。但是,我需要自动执行该转换。
是否可以使用 scikit-image 或 PIL(或其他工具)将使用 ProPhoto RGB 色彩空间的 TIF 转换为 RGB 色彩空间?我在 https://scikit-image.org/docs/stable/api/skimage.color.html 的 scikit-image 的“颜色”模块的文档中没有看到任何关于该颜色空间的提及。 .除非“ProPhoto RGB”可以换个名字或与另一种转换方法兼容?
谢谢!
编辑:
用户 Abhi25t 的回答有助于在显示这些图像方面取得一些进展。然而,他们的回答似乎只针对 16 位到 8 位的转换。 ProPhoto RGB 到 sRGB 仍然存在色彩空间问题。希望这次编辑能更好地展示这一点。
ProPhoto 色彩空间中原始测试 TIF 图像的像素值:
array([[58465, 58479, 58785],
[58575, 58591, 58879],
[58441, 58457, 58739],
...,
[58185, 58045, 58549],
[58101, 57951, 58463],
[57993, 57853, 58371]], dtype=uint16)
Photoshop sRGB 转换文件的像素值:
array([[59771, 59873, 60161],
[59863, 59965, 60235],
[59755, 59855, 60119],
...,
[59623, 59489, 59993],
[59561, 59411, 59925],
[59463, 59333, 59851]], dtype=uint16)
IRFAN VIEW 转换文件的像素值(它似乎已转换为 8 位并转换为 sRGB 空间):
array([[233, 233, 234],
[233, 233, 234],
[232, 233, 234],
...,
[232, 231, 233],
[232, 231, 233],
[231, 231, 233]], dtype=uint8)
我在这里添加了一些测试代码和图片: https://drive.google.com/drive/folders/1tcfUY2Kwlz-LAlt6_YXtT8l6vLnCucbM?usp=sharing
图像应显示为 colorchecker 目标。您应该能够正确地看到它,只需绘制“TEST_PROPHOTO_IRFAN_SAVED.tif”的 imread 结果。
from skimage import io
import numpy as np
import matplotlib.pyplot as plt
# TEST_PROPHOTO.tif : RAW TIF FILE
# TEST_PROPHOTO_IRFAN_SAVED.tif : RAW TIF, OPENED IN IRFANVIEW AND RESAVED AS TIF
# TEST_SRGB_PHOTOSHOP_CONVERTED.tif : RAW TIF, OPENED IN PHOTOSHOP, PROFILE CONVERTED TO sRGB, RESAVED AS TIF
img_path = '/path/to/image/myImage.tif'
img_rgb = io.imread(img_path)
plt.imshow(img_rgb)
plt.show()
# VIEW IMAGE CONTENTS
img_rgb[0] # you can see these values are 16-bit;
# however, colorspace (actual RGB values) differs between the ProPhoto test file and the Photoshop converted sRGB file
# STACKOVERFLOW USER Abhi25t's METHOD TO CONVERT FROM 16-bit color [0-65535] to 8-bit color [0-255]:
img_rgb_convert = img_rgb * (255/65535)
img_rgb_convert = img_rgb_convert.astype(int)
plt.imshow(img_rgb_convert)
plt.show()
最佳答案
您需要执行以下步骤:
imread
读取图像。# Using CAT02.
[[ 2.0364917242 -0.7375906525 -0.2992598689]
[-0.2257179791 1.2231765313 0.0027252248]
[-0.0105451286 -0.1348798497 1.1452101525]]
Colour可以直接使用 colour.RGB_to_RGB 做 3 到 5定义。假设数据已经在浮点范围内,转换将是这样的:
img_rgb_convert = colour.RGB_to_RGB(
img_rgb,
colour.RGB_COLOURSPACES['ProPhoto RGB'],
colour.RGB_COLOURSPACES['sRGB'],
chromatic_adaptation_transform='CAT02',
apply_cctf_decoding=True,
apply_cctf_encoding=True)
注意:因为 ProPhoto RGB 的色域比 sRGB 的色域大,转换可能会产生色域外的颜色,可以将这些颜色裁剪掉在步骤 4 或 5 之后或使用专用算法进行色域映射后,范围 [0-1] 为简单起见。
关于python - 如何使用 scikit-image 和/或 PIL 将 ProPhoto RGB 色彩空间转换为 RGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65867359/
在 python 解释器中: >>> import PIL >>> PIL.Image Traceback (most recent call last): File "", line 1, in
我在 Pillow 中遇到过这个奇怪的错误,其中导入名称 PIL 需要全部小写而不是全部大写,但我从未见过 pil在任何地方都使用小写字母。这意味着我使用的导入 PIL 的所有 python 包和文件
有没有办法使用 PIL 截取驻留在我的服务器上的指定 HTML/Javascript 页面的屏幕截图? 我想编写一个脚本来更改该 HTML 页面上的一些参数,然后让 PIL 对其进行屏幕截图。 有什么
这是我所做的描述。 我正在尝试使用 PIL 编写程序,但是在尝试导入它时(如下所示),出现错误(也如下所示)。 from PIL import Image Here is the error. Tra
我正在尝试对图像进行简单的裁剪。这是代码 from PIL.Image import Image def get_image_half(image, half="upper"): if hal
我是一名新的Python用户,也是“Stack Overflow”中的新用户,当我尝试编译 tensorflow 代码时,我遇到了一些问题,并且我无法从网站上找到答案,所以我想从这里获得一些帮助,先谢
我知道 stackoverflow 上已经有很多与此问题相关的问题,我已经阅读了所有问题,但我仍然没有成功解决此问题。我希望有人能帮我解决这个问题。 我已经安装并重新安装了 Pillow 10 次。我
我得到错误: --------------------------------------------------------------------------- ImportError
我是机器学习的初学者,所以我试图创建一个模型来识别 Keras 博客中引用的图像。我已经在 Windows 10 上安装了 Anaconda 3 以及所有软件包,如tensorflow、keras、s
我正在尝试使用过滤器 FIND_EDGES 从图片中获取边缘,它在我的 Windows PC 上工作,但是当我在我的 Raspberry Pi 上运行相同的代码时,它给出了图像模式错误的错误。 最佳答
这个问题在 Python 环境中有一些答案,但这些解决方案不适用于我的 RStudio 环境。这是我的代码: library(keras) library(tensorflow) use_condae
我正在使用 Mac OS x 10.10.3 Yosemite 和 Python 2.7.9 |Anaconda 2.2.0 (x86_64) 来处理很多 python 的东西。我正在使用 Eclip
我正在遵循这个 SageMaker 指南并使用 1.12 cpu docker 文件。 https://github.com/aws/sagemaker-tensorflow-serving-cont
`from PIL import Image, ImageDraw, ImageFont image = Image.new('RGB', (950, 250), color=(255, 255, 2
我知道如何从图片中找到边缘。但我希望轮廓边缘更厚,例如宽度 9。 from PIL import Image, ImageFilter image = Image.open('your
我有多个白色背景的 PNG 图像,并且图像的某些部分充满了图案(可能是不同的颜色,黑色、蓝色、红色、黄色等)。 如何使用 Python PIL 库将所有这些图像合并为一张图像,以便所有非白色部分出
目前我正在尝试裁剪以下地址下文件夹内的所有图像:C:\\Users\\xie\\Desktop\\tiff\\Bmp然后将它们重新保存到同一个文件夹中。下面是我试图试验的代码,两者都运行没有错误但什么
虽然它们非常相似,但我确信 Pearson 相关相似度和调整余弦相似度之间存在一些差异,因为所有的论文和网页都将它们分为两种不同的类型。 然而,它们都没有提供明确的定义。 Here是其中一页。 谁能说
这是我的forms.py: class UploadImageForm(forms.ModelForm): class Meta: model = UserImages
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!