""" 像素查找器.py 本程序在一幅图上根据像素值查找像素点的x,y坐标,也就是行列号。 行号就当于y坐标,列号就相当于x坐标。 """ __author__ = '李兴球' __date__ = '2020/10/17' __blog__ = 'www.lixingqiu.com' import numpy as np from PIL import Image def _find_pixels(im,pixel): """im:Image图形对象, pixel:RGBA四元组或列表 返回生成器,它能生成所有找到的像素点的行列号。 """ ps = [] pixel = np.array(list(pixel),dtype=np.uint8) array = np.array(im) # print(array==pixel) # print(np.all(array==pixel, axis=2)) # 轴为-1即倒数第一维,表示最里层中括号里的数据进行"and"操作。 # 如果有一个为False,结果就为False。 # 只有为全True,则表示这个像素的4个值都和此处像素的4个值相等。 rows,cols = np.where(np.all(array==pixel, axis=-1)) for r ,c in zip(rows,cols): #ps.append((r,c)) yield (r,c) def contain_pixel(im,pixel): """判断图像im是有pixel像素 im:Image图形对象, pixel:RGBA四元组或列表 """ p = _find_pixels(im,pixel) print('p=',p) try: next(p) return True except StopIteration: return False except: return False im = Image.open("c:/kuai.png") p = contain_pixel(im,[51,255,0,255]) if p : print('有这个像素') else: print('没有')
李兴球
李兴球的博客是Python创意编程原创博客
要发表评论,您必须先登录。
发表评论