compare_pic = r’.\tmp_output\kejianxuexi_compare.png’

cv2.imwrite(compare_pic, img_rgb)

temp_voice = r’.\template\kejianhua_tem_voice.png’

temp_no_voice = r’.\template\kejianhua_tem_no_voice.png’

no_voice_flag = match.score_pic(compare_pic, temp_voice, temp_no_voice)

if no_voice_flag:

print(‘===============find no_voice_flag’)

find_question_flag = find_question()

if find_question_flag:

#second

time.sleep(5)

find_daan()

time.sleep(5)

find_quding()

find_chongbo_flag = find_chong_bo()

if find_question_flag and find_chongbo_flag:

print(‘========>find_chongbo_flag and  find_chongbo_flag’)

exit()

if find_chongbo_flag:

weikaishi()

else:

print(‘===============every thing is ok’)

time.sleep(2)

#exit(0)

图像相似度打分算法

那么如何判断一张被PS过的图片是否与另一张图片本质上相同呢?比较简单、易用的解决方案是采用感知哈希算法(Perceptual Hash Algorithm)。

感知哈希算法是一类算法的总称,包括aHash、pHash、dHash。顾名思义,感知哈希不是以严格的方式计算Hash值,而是以更加相对的方式计算哈希值,因为“相似”与否,就是一种相对的判定。

aHash:平均值哈希。速度比较快,但是常常不太精确。

pHash:感知哈希。精确度比较高,但是速度方面较差一些。

dHash:差异值哈希。Amazing!精确度较高,且速度也非常快。因此我就选择了dHash作为我图片判重的def

pHash(imgfile):

“”“get image pHash value”“”

#加载并调整图片为32x32灰度图片

img=cv2.imread(imgfile, 0)

img=cv2.resize(img,(64,64),interpolation=cv2.INTER_CUBIC)

#创建二维列表

h, w = img.shape[:2]

vis0 = np.zeros((h,w), np.float32)

vis0[:h,:w] = img       #填充数据

#二维Dct变换

vis1 = cv2.dct(cv2.dct(vis0))

#cv.SaveImage(‘a.jpg’,cv.fromarray(vis0)) #保存图片

vis1.resize(32,32)

#把二维list变成一维list

img_list=(vis1.tolist())

print(‘----------’)

sum(img_list)

#计算均值

avg = sum(img_list)/(len(img_list)*1.0)

print(‘----------’)

avg_list = [‘0’ if i<avg else ‘1’ for i in img_list]

#得到哈希值

return ‘’.join([‘%x’ % int(‘’.join(avg_list[x:x+4]),2) for x in range(0,32*32,4)])

def hammingDist(s1, s2):

assert len(s1) == len(s2)

return sum([ch1 != ch2 for ch1, ch2 in zip(s1, s2)])

def aHash(img):

#缩放为8*8

img=cv2.resize(img,(8,8),interpolation=cv2.INTER_CUBIC)

#转换为灰度图

gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#s为像素和初值为0,hash_str为hash值初值为’’

s=0

hash_str=‘’

#遍历累加求像素和

for i in range(8):

for j in range(8):

s=s+gray[i,j]

#求平均灰度

avg=s/64

#灰度大于平均值为1相反为0生成图片的hash值

for i in range(8):

for j in range(8):

if gray[i,j]>avg:

hash_str=hash_str+‘1’

else:

hash_str=hash_str+‘0’

return hash_str

def cmpHash(hash1,hash2):

n=0

#hash长度不同则返回-1代表传参出错

if len(hash1)!=len(hash2):

return -1

#遍历判断

for i in range(len(hash1)):

#不相等则n计数+1,n最终为相似度

if hash1[i]!=hash2[i]:

n=n+1

return 1 - n / 64

def score_pic(compare_pic, temp_voice, temp_no_voice):

#HASH1=pHash(compare_pic)

#HASH2=pHash(temp_voice)

#out_score = 1 - hammingDist(HASH1,HASH2)1. / (3232/4)

img1 = cv2.imread(compare_pic)

img2 = cv2.imread(temp_voice)

img3 = cv2.imread(temp_no_voice)

#time1 = time.time()

hash1 = aHash(img1)

hash2 = aHash(img2)

voice_score = cmpHash(hash1, hash2)

hash1 = aHash(img1)

hash3 = aHash(img3)

no_voice_score = cmpHash(hash1, hash3)

no_voice_flag = 0

#print(str(voice_score) + ‘=>’ + str(no_voice_score))

if no_voice_score >= voice_score:

no_voice_flag = 1

else:

no_voice_flag = 0

return no_voice_flag

图像搜索算法

使用res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)

def lookup_pos(template_pic, search_pic):

img_rgb = cv2.imread(search_pic)

img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)

img = img_gray

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-NLcCMRTe-1712951410977)]

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐