【发布时间】:2019-06-14 23:35:53
【问题描述】:
我有 2 张图片,
1- 带有黑色笔划的白色圆圈
2- 带有黑色笔划的黑色圆圈
我想比较两个图像并确定它们具有相同的圆圈但填充不同 我应该只使用 python 和枕头
我已经尝试过几种方法,例如边缘检测,但是每当我尝试重新调整图片以进行边缘检测时,新图像都会显示为空
from PIL import Image, ImageDraw
import numpy as np
from math import sqrt
# Load image:
input_image = Image.open("input.png")
input_pixels = input_image.load()
width, height = input_image.width, input_image.height
# Create output image
output_image = Image.new("RGB", input_image.size)
draw = ImageDraw.Draw(output_image)
# Convert to grayscale
intensity = np.zeros((width, height))
for x in range(width):
for y in range(height):
intensity[x, y] = sum(input_pixels[x, y]) / 3
# Compute convolution between intensity and kernels
for x in range(1, input_image.width - 1):
for y in range(1, input_image.height - 1):
magx = intensity[x + 1, y] - intensity[x - 1, y]
magy = intensity[x, y + 1] - intensity[x, y - 1]
# Draw in black and white the magnitude
color = int(sqrt(magx**2 + magy**2))
draw.point((x, y), (color, color, color))
output_image.save("edge.png")
预期的结果是两张图片都将被灰度化,只有圆圈边缘被标记为白色
实际结果为空黑色图像(好像看不到边缘)
【问题讨论】:
标签: python python-imaging-library