本文整理匯總了Python中PIL.ImageFilter.FIND_EDGES屬性的典型用法代碼示例。如果您正苦於以下問題:Python ImageFilter.FIND_EDGES屬性的具體用法?Python ImageFilter.FIND_EDGES怎麽用?Python ImageFilter.FIND_EDGES使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類PIL.ImageFilter
的用法示例。
在下文中一共展示了ImageFilter.FIND_EDGES屬性的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_pillow_image_filter_filter
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def test_pillow_image_filter_filter():
stim = ImageStim(join(IMAGE_DIR, 'thai_people.jpg'))
with pytest.raises(ValueError):
filt = PillowImageFilter()
filt = PillowImageFilter('BLUR')
blurred = filt.transform(stim)
assert blurred is not None
from PIL import ImageFilter
filt2 = PillowImageFilter(ImageFilter.FIND_EDGES)
edges = filt2.transform(stim)
assert np.array_equal(edges.data[0, 0], [134, 85, 45])
filt3 = PillowImageFilter(ImageFilter.MinFilter(3))
min_img = filt3.transform(stim)
assert np.array_equal(min_img.data[0, 0], [122, 74, 36])
filt4 = PillowImageFilter('MinFilter')
min_img = filt4.transform(stim)
assert np.array_equal(min_img.data[0, 0], [122, 74, 36])
filt5 = PillowImageFilter(ImageFilter.MaxFilter, size=3)
med_img = filt5.transform(stim)
assert np.array_equal(med_img.data[0, 0], [136, 86, 49])
示例2: get_des_position
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def get_des_position(_img_path: '臨時圖片路徑', _self_point: '起始點坐標'):
""" 獲取目標點位置 """
_img = Image.open(_img_path)
# 兩次邊緣檢測
_img = _img.filter(ImageFilter.FIND_EDGES)
_img = _img.filter(ImageFilter.FIND_EDGES)
# 2 value
_img = _img.convert('1')
_img.save('temp1.png')
# 排除頂端的幹擾
_img = np.array(_img)[IGNORE_HEIGHT[0]:]
# 按行掃描圖片
for index, each in enumerate(_img):
old_line = _img[index-1]
# 如果有變化說明檢測到頂端
if (each[1:-1] - old_line[1:-1]).any():
# black line
if any(map(lambda x: list(x).count(True) > int(len(each)/2), (each, old_line))):
continue
else:
des_x = _get_des_x(each, old_line)
des_y = _get_des_y(index, des_x, _img)
if abs(des_x - self_point[0]) < CHESS_WIDTH * 2:
continue
else:
break
else:
raise ValueError('Something error.')
return des_x, des_y
示例3: imfilter
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def imfilter(arr,ftype):
"""
Simple filtering of an image.
Parameters
----------
arr : ndarray
The array of Image in which the filter is to be applied.
ftype : str
The filter that has to be applied. Legal values are:
'blur', 'contour', 'detail', 'edge_enhance', 'edge_enhance_more',
'emboss', 'find_edges', 'smooth', 'smooth_more', 'sharpen'.
Returns
-------
imfilter : ndarray
The array with filter applied.
Raises
------
ValueError
*Unknown filter type.* If the filter you are trying
to apply is unsupported.
"""
_tdict = {'blur':ImageFilter.BLUR,
'contour':ImageFilter.CONTOUR,
'detail':ImageFilter.DETAIL,
'edge_enhance':ImageFilter.EDGE_ENHANCE,
'edge_enhance_more':ImageFilter.EDGE_ENHANCE_MORE,
'emboss':ImageFilter.EMBOSS,
'find_edges':ImageFilter.FIND_EDGES,
'smooth':ImageFilter.SMOOTH,
'smooth_more':ImageFilter.SMOOTH_MORE,
'sharpen':ImageFilter.SHARPEN
}
im = toimage(arr)
if ftype not in _tdict:
raise ValueError("Unknown filter type.")
return fromimage(im.filter(_tdict[ftype]))
示例4: test_sanity
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def test_sanity(self):
def filter(filter):
for mode in ["L", "RGB", "CMYK"]:
im = hopper(mode)
out = im.filter(filter)
self.assertEqual(out.mode, im.mode)
self.assertEqual(out.size, im.size)
filter(ImageFilter.BLUR)
filter(ImageFilter.CONTOUR)
filter(ImageFilter.DETAIL)
filter(ImageFilter.EDGE_ENHANCE)
filter(ImageFilter.EDGE_ENHANCE_MORE)
filter(ImageFilter.EMBOSS)
filter(ImageFilter.FIND_EDGES)
filter(ImageFilter.SMOOTH)
filter(ImageFilter.SMOOTH_MORE)
filter(ImageFilter.SHARPEN)
filter(ImageFilter.MaxFilter)
filter(ImageFilter.MedianFilter)
filter(ImageFilter.MinFilter)
filter(ImageFilter.ModeFilter)
filter(ImageFilter.GaussianBlur)
filter(ImageFilter.GaussianBlur(5))
filter(ImageFilter.BoxBlur(5))
filter(ImageFilter.UnsharpMask)
filter(ImageFilter.UnsharpMask(10))
self.assertRaises(TypeError, filter, "hello")
示例5: loadAndFilterImage
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def loadAndFilterImage(name):
start = time.clock()
orig = Image.open(name)
im = orig.convert("L")
im = im.filter(ImageFilter.GaussianBlur(radius=5))
im = im.filter(ImageFilter.FIND_EDGES)
im = brightenImage(im, 20.0)
im = im.filter(ImageFilter.GaussianBlur(radius=5))
print "Bild laden: %.2fs" % (time.clock()-start)
return (orig, im)
示例6: imfilter
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def imfilter(arr, ftype):
"""
Simple filtering of an image.
Parameters
----------
arr : ndarray
The array of Image in which the filter is to be applied.
ftype : str
The filter that has to be applied. Legal values are:
'blur', 'contour', 'detail', 'edge_enhance', 'edge_enhance_more',
'emboss', 'find_edges', 'smooth', 'smooth_more', 'sharpen'.
Returns
-------
imfilter : ndarray
The array with filter applied.
Raises
------
ValueError
*Unknown filter type.* If the filter you are trying
to apply is unsupported.
"""
_tdict = {'blur': ImageFilter.BLUR,
'contour': ImageFilter.CONTOUR,
'detail': ImageFilter.DETAIL,
'edge_enhance': ImageFilter.EDGE_ENHANCE,
'edge_enhance_more': ImageFilter.EDGE_ENHANCE_MORE,
'emboss': ImageFilter.EMBOSS,
'find_edges': ImageFilter.FIND_EDGES,
'smooth': ImageFilter.SMOOTH,
'smooth_more': ImageFilter.SMOOTH_MORE,
'sharpen': ImageFilter.SHARPEN
}
im = toimage(arr)
if ftype not in _tdict:
raise ValueError("Unknown filter type.")
return fromimage(im.filter(_tdict[ftype]))
示例7: edge
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def edge(pixels, image, angle):
img = Image.open(image)
img = img.rotate(angle, expand=True)
edges = img.filter(ImageFilter.FIND_EDGES)
edges = edges.convert('RGBA')
edge_data = edges.load()
filter_pixels = []
edge_pixels = []
intervals = []
for y in range(img.size[1]):
filter_pixels.append([])
for x in range(img.size[0]):
filter_pixels[y].append(edge_data[x, y])
for y in range(len(pixels)):
edge_pixels.append([])
for x in range(len(pixels[0])):
if util.lightness(filter_pixels[y][x]) < 0.25:
edge_pixels[y].append(constants.white_pixel)
else:
edge_pixels[y].append(constants.black_pixel)
for y in range(len(pixels) - 1, 1, -1):
for x in range(len(pixels[0]) - 1, 1, -1):
if edge_pixels[y][x] == constants.black_pixel and edge_pixels[y][x - 1] == constants.black_pixel:
edge_pixels[y][x] = constants.white_pixel
for y in range(len(pixels)):
intervals.append([])
for x in range(len(pixels[0])):
if edge_pixels[y][x] == constants.black_pixel:
intervals[y].append(x)
intervals[y].append(len(pixels[0]))
return intervals
示例8: file_edges
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def file_edges(pixels, image, angle):
img = Image.open(image)
img = img.rotate(angle, expand=True)
img = img.resize((len(pixels[0]), len(pixels)), Image.ANTIALIAS)
edges = img.filter(ImageFilter.FIND_EDGES)
edges = edges.convert('RGBA')
edge_data = edges.load()
filter_pixels = []
edge_pixels = []
intervals = []
for y in range(img.size[1]):
filter_pixels.append([])
for x in range(img.size[0]):
filter_pixels[y].append(edge_data[x, y])
for y in range(len(pixels)):
edge_pixels.append([])
for x in range(len(pixels[0])):
if util.lightness(filter_pixels[y][x]) < 0.25:
edge_pixels[y].append(constants.white_pixel)
else:
edge_pixels[y].append(constants.black_pixel)
for y in range(len(pixels) - 1, 1, -1):
for x in range(len(pixels[0]) - 1, 1, -1):
if edge_pixels[y][x] == constants.black_pixel and edge_pixels[y][x - 1] == constants.black_pixel:
edge_pixels[y][x] = constants.white_pixel
for y in range(len(pixels)):
intervals.append([])
for x in range(len(pixels[0])):
if edge_pixels[y][x] == constants.black_pixel:
intervals[y].append(x)
intervals[y].append(len(pixels[0]))
return intervals
示例9: edge
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def edge(pixels, image, angle):
img = Image.open(image)
img = img.rotate(angle, expand=True)
edges = img.filter(ImageFilter.FIND_EDGES)
edges = edges.convert("RGBA")
edge_data = edges.load()
filter_pixels = []
edge_pixels = []
intervals = []
for y in range(img.size[1]):
filter_pixels.append([])
for x in range(img.size[0]):
filter_pixels[y].append(edge_data[x, y])
for y in range(len(pixels)):
edge_pixels.append([])
for x in range(len(pixels[0])):
if util.lightness(filter_pixels[y][x]) < 0.25:
edge_pixels[y].append(constants.white_pixel)
else:
edge_pixels[y].append(constants.black_pixel)
for y in range(len(pixels) - 1, 1, -1):
for x in range(len(pixels[0]) - 1, 1, -1):
if (
edge_pixels[y][x] == constants.black_pixel
and edge_pixels[y][x - 1] == constants.black_pixel
):
edge_pixels[y][x] = constants.white_pixel
for y in range(len(pixels)):
intervals.append([])
for x in range(len(pixels[0])):
if edge_pixels[y][x] == constants.black_pixel:
intervals[y].append(x)
intervals[y].append(len(pixels[0]))
return intervals
示例10: file_edges
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def file_edges(pixels, image, angle):
img = Image.open(image)
img = img.rotate(angle, expand=True)
img = img.resize((len(pixels[0]), len(pixels)), Image.ANTIALIAS)
edges = img.filter(ImageFilter.FIND_EDGES)
edges = edges.convert("RGBA")
edge_data = edges.load()
filter_pixels = []
edge_pixels = []
intervals = []
for y in range(img.size[1]):
filter_pixels.append([])
for x in range(img.size[0]):
filter_pixels[y].append(edge_data[x, y])
for y in range(len(pixels)):
edge_pixels.append([])
for x in range(len(pixels[0])):
if util.lightness(filter_pixels[y][x]) < 0.25:
edge_pixels[y].append(constants.white_pixel)
else:
edge_pixels[y].append(constants.black_pixel)
for y in range(len(pixels) - 1, 1, -1):
for x in range(len(pixels[0]) - 1, 1, -1):
if (
edge_pixels[y][x] == constants.black_pixel
and edge_pixels[y][x - 1] == constants.black_pixel
):
edge_pixels[y][x] = constants.white_pixel
for y in range(len(pixels)):
intervals.append([])
for x in range(len(pixels[0])):
if edge_pixels[y][x] == constants.black_pixel:
intervals[y].append(x)
intervals[y].append(len(pixels[0]))
return intervals
示例11: FilterImage
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def FilterImage(image, filter_name):
"""Applies an arbitrary filtering to a PIL image. Note that this does not
work for two-byte images.
Input:
image a PIL image as 8-bit RGB or grayscale.
filter_name name of the filter to be applied. Choices are
"NONE", "BLUR", "CONTOUR", "DETAIL" ,"EDGE_ENHANCE",
"EDGE_ENHANCE_MORE", "EMBOSS", "FIND_EDGES",
"SMOOTH", "SMOOTH_MORE", "SHARPEN", "MEDIAN_3",
"MEDIAN_5", "MEDIAN_7", "MINIMUM_3", "MINIMUM_5",
"MINIMUM_7" ,"MAXIMUM_3", "MAXIMUM_5", and
"MAXIMUM_7".
Return: a pointer to the filtered image.
"""
if type(image) == list:
raise ValueError("filtering of 2-byte images is not supported")
# Look up filter method
if filter:
filter_method = FILTER_DICT[filter_name.upper()]
else:
filter_method = None
# Apply filter if necessary
if filter_method: image = image.filter(filter_method)
return image
################################################################################
# Re-size a PIL image
################################################################################
示例12: edge
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def edge(image, lower_threshold, **kwargs):
edge_data = image.filter(ImageFilter.FIND_EDGES).convert('RGBA').load()
intervals = []
for y in range(image.size[1]):
intervals.append([])
flag = True
for x in range(image.size[0]):
if lightness(edge_data[x, y]) < lower_threshold:
flag = True
elif flag:
intervals[y].append(x)
flag = False
return intervals
示例13: file_edges
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def file_edges(image, interval_image, lower_threshold, **kwargs):
edge_data = interval_image.filter(
ImageFilter.FIND_EDGES).convert('RGBA').load()
intervals = []
for y in range(image.size[1]):
intervals.append([])
flag = True
for x in range(image.size[0]):
if lightness(edge_data[x, y]) < lower_threshold:
flag = True
elif flag:
intervals[y].append(x)
flag = False
return intervals
示例14: imfilter
# 需要導入模塊: from PIL import ImageFilter [as 別名]
# 或者: from PIL.ImageFilter import FIND_EDGES [as 別名]
def imfilter(arr, ftype):
"""
Simple filtering of an image.
This function is only available if Python Imaging Library (PIL) is installed.
.. warning::
This function uses `bytescale` under the hood to rescale images to use
the full (0, 255) range if ``mode`` is one of ``None, 'L', 'P', 'l'``.
It will also cast data for 2-D images to ``uint32`` for ``mode=None``
(which is the default).
Parameters
----------
arr : ndarray
The array of Image in which the filter is to be applied.
ftype : str
The filter that has to be applied. Legal values are:
'blur', 'contour', 'detail', 'edge_enhance', 'edge_enhance_more',
'emboss', 'find_edges', 'smooth', 'smooth_more', 'sharpen'.
Returns
-------
imfilter : ndarray
The array with filter applied.
Raises
------
ValueError
*Unknown filter type.* If the filter you are trying
to apply is unsupported.
"""
_tdict = {'blur': ImageFilter.BLUR,
'contour': ImageFilter.CONTOUR,
'detail': ImageFilter.DETAIL,
'edge_enhance': ImageFilter.EDGE_ENHANCE,
'edge_enhance_more': ImageFilter.EDGE_ENHANCE_MORE,
'emboss': ImageFilter.EMBOSS,
'find_edges': ImageFilter.FIND_EDGES,
'smooth': ImageFilter.SMOOTH,
'smooth_more': ImageFilter.SMOOTH_MORE,
'sharpen': ImageFilter.SHARPEN
}
im = toimage(arr)
if ftype not in _tdict:
raise ValueError("Unknown filter type.")
return fromimage(im.filter(_tdict[ftype]))