学弟抱怨说期末选修网课太多,于是我教他用python如何实现自动刷课,简直不要太爽!
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
pixel_core_x = 877.0
pixel_core_y = 25.0
deal_left = window_left #window_left + kejian_x / full_screen_w * window_width - 100
deal_top = window_top + pixel_core_y / full_screen_h * window_height - 20
deal_right = window_left + window_width#window_left + kejian_x / full_screen_w * window_width + 150
deal_bottom = window_top + pixel_core_y / full_screen_h * window_height + 20
grab_image = snapshot.grab_screen(deal_left,deal_top,deal_right,deal_bottom)
search_pic = r’.\tmp_output\search_kejianxuexi.png’
grab_image.save(search_pic)
#find kejian_tem
template_pic = r’.\template\kejian_tem.png’
num, w, h, pos_list = match.lookup_pos(template_pic, search_pic)
left = 0
top = 0
find_kejian_flag = 0
no_voice_flag = 0
if num == 1:
left = pos_list[0][0]
top = pos_list[0][1]
find_kejian_flag = 1
else:
print('==========warning search_kejianxuexi = ’ + str(num))
find_kejian_flag = 0
if find_kejian_flag:
img_rgb = cv2.imread(search_pic)
img_rgb = img_rgb[top:top + h, left:left + w + 80, :] # h, w, c
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()
最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-ToHUqPFe-1713247289910)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)