我有一张图片.
我想逐个像素地检查那个图像,任何非黑色的像素都应该变成白色.我该怎么做呢?
(蟒蛇).
谢谢!
我想弄清楚在django上使用哪个图像管理库.photologue,image-kit和pil(python成像库)有什么区别?
django photologue imagekit python-imaging-library django-imagekit
这似乎是一个简单的问题,但我无法弄清楚:
我get_serving_url()在我的代码中调用函数并得到错误:
NameError:未定义全局名称"get_serving_url"
我的import语句目前看起来像是:来自google.appengine.api导入图片
之前我尝试了各种"从PIL导入图像"并导致导入错误.我最近安装了PIL库
我的python路径上有site-packages和PIL文件夹
我该如何get_serving_url()工作?
我正在尝试创建一个API,它将图像URL作为输入,并返回JSON格式的调色板作为输出.
它应该是这样的:http://lokeshdhakar.com/projects/color-thief/
但应该是在Python中.我已经研究过PIL(Python图像库),但没有得到我想要的东西.有人能指出我正确的方向吗?
Input: Image URL
Output: List of Colors as a palette
Run Code Online (Sandbox Code Playgroud) 这是此答案中此代码生成的图像(绿色圆圈除外,我之后提到):

形状为(707,1028,3),因此每个像素有三个通道(RGB),但只填充白色和黑色.如果它被转换为8位图像会更好.
我需要获取图像中每个矩形的位置和大小.我有一些代码使用PIL并.load()访问每个像素,但速度太慢.在PIL版本中,我寻找开始角落和结束角落.代码就像pixels[x, y] == 255 and pixels[x-1, y] == 0 and pixels[x, y-1] == 0
我使用以下代码将彩色图像转换为灰度图像.它为什么抛出TypeError?
#!/usr/bin/python
from PIL import Image
im = Image.open("Penguins.jpg")
pixel = im.load()
width, height = im.size
for x in range(width):
for y in range(height):
R,G,B = pixel[x,y]
pixel[x,y] = ((0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B))
im.save("Penguins_new.jpg")
Run Code Online (Sandbox Code Playgroud) 对于我正在编写的程序,我需要将RGB图像转换为灰度,并使用PIL将其作为NumPy数组读取.
但是,当我运行以下代码时,它会将图像转换为灰度,但会转换为奇怪的颜色失真,有点像热像仪的输出,如图所示.
知道问题可能是什么?
谢谢!
http://www.loadthegame.com/wp-content/uploads/2014/09/thermal-camera.png
from PIL import Image
from numpy import *
from pylab import *
im = array(Image.open('happygoat.jpg').convert("L"))
inverted = Image.fromarray(im)
imshow(inverted)
show()
Run Code Online (Sandbox Code Playgroud) 在图像处理方面我非常喜欢:(我有一堆PNG文件(其中300个),我希望裁剪大面积的透明度.我想显然自动化过程,因此为什么我尝试使用python和PIL.
现在我看看以下链接, 将PNG图像裁剪为最小尺寸,并使用此链接建议的Numpy,使用python/PIL自动裁剪图像,两者都没有成功:(输出文件与输入文件!没有裁剪透明度,大小相同.getbbox返回相同的宽度和高度.
这是其中一个图像的链接; 98x50 按钮图像是一个铃铛形状的按钮图标.它是用白色绘制的,因此很难看出哪个透明背景.预期的结果将是一个20x17的按钮(内部透明度为20x17的盒子保持不变)
这是我正在使用的代码;
#!/usr/bin/env python
import sys
import os
import Image
import numpy as np
def autocrop_image2(image):
image.load()
image_data = np.asarray(image)
image_data_bw = image_data.max(axis=2)
non_empty_columns = np.where(image_data_bw.max(axis=0) > 0)[0]
non_empty_rows = np.where(image_data_bw.max(axis=1) > 0)[0]
cropBox = (min(non_empty_rows), max(non_empty_rows),
min(non_empty_columns), max(non_empty_columns))
image_data_new = image_data[cropBox[0]:cropBox[
1] + 1, cropBox[2]:cropBox[3] + 1, :]
new_image = Image.fromarray(image_data_new)
return new_image
def autocrop_image(image, border=0):
# Get the bounding box
bbox = image.getbbox()
# Crop the image to the contents …Run Code Online (Sandbox Code Playgroud) 我正在尝试在jpg上粘贴一个png.这是代码:
#!/usr/bin/env python3
from PIL import Image
from PIL import ImageDraw
im = Image.open("existing.jpg")
logo = Image.open("python-32.png")
back = Image.new('RGBA', im.size)
back.paste(im)
poly = Image.new('RGBA', (512,512))
pdraw = ImageDraw.Draw(poly)
pdraw.polygon([(128,128),(384,384),(128,384),(384,128)],
fill=(255,255,255,127),outline=(255,255,255,255))
back.paste(poly, (0,0), mask=poly)
back.paste(logo, (im.size[0]-logo.size[0], im.size[1]-logo.size[1]), mask=logo)
back.show()
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,我可以看到PNG图像显示为随机名称tmpc8rb455z.PNG.
我也尝试用jpg格式保存它但失败了.这意味着当我添加back.save('res.jpg', 'JPEG')并执行它时,我会收到这样的错误:
Traceback (most recent call last):
File "test.py", line 32, in <module>
back.save('res.jpg', 'JPEG')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/Image.py", line 1893, in save
save_handler(self, fp, filename)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/JpegImagePlugin.py", line 604, in _save
raise IOError("cannot write mode %s as …Run Code Online (Sandbox Code Playgroud)