今天突然想到这样的问题,找了一下,没找到解决方法,自己想试一试就做了一个,但是感觉太白痴,但是运行的时候也不是说要很久。
#!/usr/bin/env python3 #-*- coding:utf-8 -*- from PIL import Image imbig = Image.open("big.png")#获取大图片 imlit = Image.open("litte.png")#获取大图片 w , h = imbig.size w2, h2 = imlit.size piaxdata = imbig.load() piaxdata2 = imlit.load() list_frist=[]#用于存放获取到的和图像左上角第一个点一样像素的点的位置 for i in range(w): for j in range(h):#遍历全图 if piaxdata[i,j] == piaxdata2[0,0]:#若相等则将点的位置放入list list_frist.append([i,j]) i=1 while not len(list_frist)==1:#list中有多个点的时候,需要靠相邻的点来判别, for x,y in list_frist: if x+i>=w:#防止超界报错 list_frist.remove([x, y]) if not piaxdata[x+i,y] == piaxdata2[0+i, 0]: list_frist.remove([x, y])#不同则移除 i+=1 x, y = list_frist[0] #从大图中框出来 for i in range(w2): piaxdata[x+i,y] = (255,0,0) for i in range(w2): piaxdata[x + i, y+h2] = (255, 0, 0) for i in range(h2): piaxdata[x,y+i] = (255,0,0) for i in range(h2): piaxdata[x + w2, y+i] = (255, 0, 0) imbig.show()
————————————————
转载链接:https://blog.csdn.net/pasy10086/article/details/105027866