7.2 二维数组找数组最边上的不为0的坐标

如下图的二维数组,要获得所有的最外围的值不为0的坐标。

其代码如下:

python 复制代码
import cv2
import numpy as np


#2.找矩阵save_list边界的位置
 #输入为save_list,输出为剩下边界坐标的save_list
def boundary(s):

    print(s)
    list1={}#按照横坐标从小到大的顺序的坐标位置
    list2=[]
    for i in range(len(s)):
        list1[str(i)]=[]
        for j in range(len(s[0])):
            if s[i][j]!=0:
                list1[str(i)].append((i,j))
                list2.append((i,j))

    list2=sorted(list2,key=lambda x:x[1])
    list_over={}#按照纵坐标从小到大的顺序的坐标位置
    for item in list2:
        if str(item[1]) not in list_over:
            list_over[str(item[1])]=[]
            list_over[str(item[1])].append(item)
        else:
            list_over[str(item[1])].append(item)

    print(list1)
    print(list_over)

    #以上代码获得了两个字典
    #下面获得该矩阵最外围的坐标
    save_list=[]
    for item in list1:
        #print(item)
        if len(list1[item])==1:
            save_list.append(list1[item][0])
        else:
            save_list.append(list1[item][0])
            save_list.append(list1[item][-1])

    for item in list_over:
        if list_over[item][-1] not in save_list:
            save_list.append(list_over[item][-1])

    save_list=sorted(save_list)

    return save_list

if __name__ == '__main__':

    data1 = [
        [0, 0, 0, 1, 0, 0, 0],
        [0, 1, 1, 1, 1, 1, 0],
        [0, 1, 1, 1, 1, 1, 0],
        [1, 1, 1, 1, 1, 1, 1],
        [0, 1, 1, 1, 1, 1, 0],
        [0, 1, 1, 1, 1, 1, 0],
        [0, 0, 0, 1, 0, 0, 0]
    ]
    save_list=boundary(data1)
    print(save_list)
相关推荐
VivienneLuo28 分钟前
1. 联邦大模型微调综述 -《Federated Large Language Models...》
人工智能·语言模型·微调·联邦学习
漂流瓶jz5 小时前
【AI】大模型本地部署与量化:Ollama、transformers、llama.cpp实践
人工智能·llm·ai编程
毕竟是shy哥7 小时前
计算YOLO数据集中每个类的目标数
算法·yolo·机器学习
飞哥数智坊7 小时前
AI时代,我们到底该学什么、用什么,为什么还没提效?
人工智能
飞哥数智坊7 小时前
GPT 做架构,国内模型写代码:这条 AI 开发路线能跑通吗?
人工智能·ai编程
AI_AGENT_DEV_AI8 小时前
AI 智能体的开发与上线
人工智能
VL——MOESR8 小时前
【具身智能】VLA论文阅读随笔
论文阅读·人工智能·机器学习·具身智能·vla
OCR_133716212758 小时前
从模板匹配到AI泛化识别:文本抽取如何重构护照阅读器落地生态
人工智能·重构
大唐荣华8 小时前
从OpenAI关停Sora看世界模型、AI视频与国内具身智能赛道路线分化
人工智能·openai·sora·内容生成
DevOps老兵8 小时前
AI Infra实战02:GPU监控实战,用DCGM+Prometheus+Grafana看清每一张卡
人工智能·grafana·prometheus·ai infra·gpu监控·dcgm