像素查找器.py

如本文章标有价格,需议价或其它事情商议请加微信scratch8

"""
   像素查找器.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('没有')

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 像素查找器.py
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页