python 从大图中找小图


今天突然想到这样的问题,找了一下,没找到解决方法,自己想试一试就做了一个,但是感觉太白痴,但是运行的时候也不是说要很久。

#!/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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM