需要在python中运行一个图像,基本上计算特定边界内所有可接受像素的平均位置.图像是黑白的.可接受像素的值为255,不可接受像素的值为零.该图像类似于2592x1944,运行可能需要15秒.这需要循环几次.有没有更快的方法?

goodcount = 0
sumx=0
sumy=0
xindex=0
yindex=0

for row in mask:
    yindex+=1
    xindex=0
    for n in row:
        xindex+=1
        if n == 255:
            goodcount += 1
            sumx += xindex
            sumy += yindex

if goodcount != 0:

    y = int(sumy / goodcount)
    x = int(sumx / goodcount)

推荐答案

np.where()将返回条件为真的索引数组,我们可以将其平均(加1以匹配索引)并转换为整数:

if np.any(mask == 255):
    y, x = [int(np.mean(indices + 1)) for indices in np.where(mask == 255)]

Python相关问答推荐

海运图:调整行和列标签

数据抓取失败:寻求帮助

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

使用Python更新字典中的值

Scrapy和Great Expectations(great_expectations)—不合作

如何启动下载并在不击中磁盘的情况下呈现响应?

如何在Python中获取`Genericums`超级类型?

为什么np. exp(1000)给出溢出警告,而np. exp(—100000)没有给出下溢警告?

在Python中调用变量(特别是Tkinter)

重置PD帧中的值

在Admin中显示从ManyToMany通过模型的筛选结果

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

mdates定位器在图表中显示不存在的时间间隔

将CSS链接到HTML文件的问题

对于标准的原始类型注释,从键入`和`从www.example.com `?

如何从一个维基页面中抓取和存储多个表格?

.awk文件可以使用子进程执行吗?

奇怪的Base64 Python解码

将时间序列附加到数据帧