我的所有图像都有感兴趣的区域,这些区域以溺爱的白线为界。 我想只裁剪那些部分。
我有一个想法,找到左上角的最小(x,y)并找到右下角的最大值(x,y)并裁剪区域?
我们可以从PIL库中获取Pixel值
答案 0 :(得分:0)
使用opencv2轻松裁剪图像。试试这个链接
ball = img[280:340, 330:390]
因为Image是一个2D数组,你可以用上面的行进行裁剪。
答案 1 :(得分:0)
读取PIL中的像素值
from PIL import Image
im = Image.open(imagename)
pix = im.load()
print (pix[0,0])
这将返回第一行中的第一个像素。
如果你想阅读所有像素,你可以做这样的事情。
x, y = im.size
for i in x:
for j in y:
print (pix[i,j])
答案 2 :(得分:0)
from PIL import Image
from IPython.display import display, HTML
from IPython.display import Image as displayImage
img=Image.open('image.png')
imag_rgb = img.convert('RGB')
width, height = imag_rgb.size
print (width, height)
for pixel_x in range(width):
for pixel_y in range(height):
r, g, b = rgb_img.getpixel((pixel_x, pixel_y))
if(r == 255 and g == 255 and b == 255):
min_pixel_x = pixel_x
min_pixel_y = pixel_y
max_pixel_x = pixel_x
max_pixel_y = pixel_y
print (pixel_x, pixel_y)
cropped_image = img.crop((min_pixel_x, min_pixel_y,max_pixel_x + 1, max_pixel_y + 1))
#### +1 because of first x,y is 0,0
display(cropped_image)