问题标签 [python-imaging-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2262 浏览

python - 用于裁剪和调整大小的 PIL 与 Python-GD

我正在创建自定义图像,然后将其转换为 Seadragon AJAX 的图像金字塔。图像和图像金字塔是使用 PIL 创建的。目前需要几个小时才能为大约 100 张图片生成图像和图像金字塔,这些图片的组合宽度和高度约为 32,000,000 x 1000(是的,图像很长很窄)。性能大致类似于我尝试过的另一种算法(即deepzoom.py)。我计划看看 python-gd 是否会表现得更好,因为它的大部分功能都是用 C 编码的(来自 GD 库)。我会假设性能会显着提高,但是我很想听听其他人的意见。特别是在 PIL(w/Image.ANTIALIAS)中,调整大小和裁剪速度很慢。如果我使用 Python-GD,这会显着改善吗?

提前感谢您的意见和建议。

编辑: PIL 和 python-GD 之间的性能差异似乎很小。我将重构我的代码以减少性能瓶颈并包括对多处理器的支持。我已经测试了 python 'multiprocessing' 模块。结果令人鼓舞。

0 投票
1 回答
1118 浏览

python - matplotlib 中的直方图在顶部被裁剪

我有一个使用 matplotlib 生成直方图的 Python 程序。问题是生成的图像有时会在顶部被裁剪。首先,这是相关的代码摘录,其中pltismatplotlib.pyplotfigis matplotlib.figure

问题出现在如下情况。我可能有 300 个元素grades,其中 3 个容器中的元素超过 20 个,其余的不到 20 个。超过 20 个的容器的顶部将被切断,y 轴最多只能达到 20。但这并不总是发生:grades具有相似分布的不同 300 个元素可能会正确呈现,并且 y 轴缩放以适合figsize. 另请注意,x 轴总是正确显示。

我该怎么做才能使 y 轴正确缩放并生成适合图像的条形?

0 投票
1 回答
3188 浏览

browser - 缩放存储在 S3 中的图像

我的情况是,我需要将多个网站的图像存储推送到可以无限扩展的服务(S3、CloudFiles 等)。到目前为止,在 Django 中的sorl-thumbnail的帮助下,我们已经能够允许我们的用户使用 Python 的 Imaging 库动态生成自定义缩略图大小。

通过将我们的图像移动到 S3 之类的东西上,快速创建缩略图的能力就丧失了。我们可以:

  1. 通过从 S3 下载源代码并在本地创建缩略图
    来慢慢做
  2. 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推送到 S3
    con:它限制了可以生成的大小并存储了许多永远不会使用的文件
  3. 让浏览器使用 img 标签上的高度/宽度属性调整大小。
    缺点:下载大于必要的文件使用的额外带宽

在这一点上,#3 看起来是一个简单的解决方案,几乎没有缺点。该网站的一些快速测试和数据表明质量没有预期的那么差(我们可以确保保持纵横比)。

关于我们可能未考虑的其他选择或缺点的任何建议?

注:图片为数码照片,仅用于网络展示。尺寸的高度/宽度范围为 1000-50 像素。

0 投票
4 回答
13537 浏览

python - 在 Python,Python Image Library 1.1.6 中,如何在不调整大小的情况下扩展画布?

我可能在手册中寻找错误的东西,但我正在寻找一个图像对象并扩展它而不调整(拉伸/挤压)原始图像的大小。

玩具示例:想象一个 200 x 100 的蓝色矩形,然后我执行一些操作,我有一个新的图像对象,400 x 300,它由一个白色背景组成,一个 200 x 100 的蓝色矩形位于其上。如果我可以控制其扩展的方向或新的背景颜色等,则可以加分。

本质上,我有一个图像,我将对其进行迭代添加,并且我不知道一开始它的大小。

我想我可以抓住原始对象,制作一个新的,稍大的对象,将原始对象粘贴到那里,再画一点,然后重复。看起来它可能在计算上很昂贵。但是,我认为会有一个功能,因为我认为这是一个常见的操作。也许我猜错了。

0 投票
1 回答
117 浏览

python - 保留旧图像的范围

我在 Windows 平台上使用PIL 1.1.6、Python 2.5。

在我的程序中,我正在执行点操作(更改像素值),然后保存新图像。

当我加载新旧图像时,它们的程度不同。如何将旧图像的范围强加给新图像?

我的代码是:

0 投票
4 回答
37965 浏览

python - 蟒蛇图像识别

我想做的是一个简单应用程序的图像识别:

  1. 给定图像(500 x 500)像素(1 色背景)
  2. 图像将只有 (50x50) 像素的 1 个几何图形(三角形或正方形或 smaleyface :))。
  3. python会做图形的识别并显示几何图形是什么。

任何链接?任何提示?任何API?谢谢 :)

0 投票
3 回答
12601 浏览

python - 如何使用 PIL 调整大小并将旋转 EXIF 信息应用于文件?

我正在尝试使用 Python 来调整图片大小。用我的相机,文件都是横向写的。

exif 信息处理一个标签以要求图像查看器以某种方式旋转。由于大多数浏览器不理解此信息,我想使用此 EXIF 信息旋转图像并保留所有其他 EXIF 信息。

你知道我如何使用 Python 做到这一点吗?

阅读 EXIF.py 源代码,我发现了类似的东西:

我如何使用这些信息和 PIL 来应用它?

0 投票
6 回答
41426 浏览

python - PIL 更换颜色的最佳方法?

我正在尝试从图像中删除某种颜色,但效果不如我希望的那样。我尝试做与这里看到的相同的事情使用 PIL 使所有白色像素透明?然而,图像质量有点损失,所以它会在被移除的地方留下一些奇怪的彩色像素的幽灵。如果所有三个值都低于 100,我尝试执行类似更改像素的操作,但由于图像质量较差,因此周围的像素甚至都不是黑色的。

有谁知道在 Python 中使用 PIL 替换颜色及其周围的任何东西的更好方法?这可能是我能想到的完全移除物体的唯一可靠的方法,但是我想不出一种方法来做到这一点。

图片具有白色背景和黑色文本。假设我想完全从图像中删除文本而不留下任何伪影。

真的很感谢有人的帮助!谢谢

0 投票
4 回答
17706 浏览

python - 如何从 PIL 图像创建 OpenCV 图像?

我想用 OpenCV(在 Python 中)做一些图像处理,但我必须从一个 PILImage对象开始,所以我不能使用这个cvLoadImage()调用,因为它需要一个文件名。

这个食谱(改编自http://opencv.willowgarage.com/wiki/PythonInterface)不起作用,因为cvSetData抱怨argument 2 of type 'void *'。有任何想法吗?

我认为最后一个论点cvSetData也是错误的,但我不确定它应该是什么。

0 投票
6 回答
7229 浏览

python - 将 PyQt 转换为 PIL 图像

我在 QImage 中有一个图像,我想在显示它之前在 PIL 中处理它。虽然 ImageQT 类允许我将 PIL 图像转换为 QImage,但似乎没有任何东西可以从 QImage 转换为 PIL 图像。