【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)

  • 构思起源
  • 结果展示
  • 吉他音频和图片附件可以从我的git上下载
  • 源码

构思起源

作为一个深度吉他爱好者,拥有一个自制的扒谱软件真是梦寐以求的事情,以前扒谱还要手画六线谱,谱子用完就扔了,很麻烦,现在有了这个软件一切就简单了,话不多说,下面就来看看吧

结果展示


运用鼠标按在上面的黄点,可以发出相应的吉他的声音,同时在上面的吉他谱上显示出相应的数字

吉他音频和图片附件可以从我的git上下载

链接: link.

源码

import cv2
from PIL import ImageGrab#截图的库
from playsound import playsound
image=cv2.imread(u'D:\\PycharmProjects\\pythonProject\\Saved Pictures\\IMG_20220228_123846_edit_112632392600521.jpg',1)#读取吉他图片
a=[]
b=[]#创建鼠标事件
def Event_Lbuttondown(event,x,y,flags,param):#设置鼠标事件,将点到的位置放出相应的声音if event==cv2.EVENT_LBUTTONDOWN:xy="%d,%d"%(x,y)a.append(x)b.append(y)#ab数组中存放了鼠标点击的坐标cv2.imshow("image",image)#--------当存了50个单音以后自动截图并保存再当前目录下,然后更新吉他谱if len(a)>50:img=ImageGrab.grab(bbox=(100,70,1830,400))str = input("输入歌曲名字")img.save(str+'.jpg')a.clear()cv2.rectangle(image, (100, 50), (1400, 240),(255, 255, 255), cv2.FILLED)cv2.line(image, (100, 70), (1400, 70), (255, 0, 0), 2)cv2.line(image, (100, 100), (1400, 100), (255, 0, 0), 2)cv2.line(image, (100, 130), (1400, 130), (255, 0, 0), 2)cv2.line(image, (100, 160), (1400, 160), (255, 0, 0), 2)cv2.line(image, (100, 190), (1400, 190), (255, 0, 0), 2)cv2.line(image, (100, 220), (1400, 220), (255, 0, 0), 2)#----------将每个案件结合鼠标事件,因为吉他中每个按键不是均匀分布的,所以我是一个一个敲的,没有用到矩阵,后面的代码大多数都差不多#------------------0品if 1457-12<x<1457+12  and \447-12<y<447+12:#---------------------鼠标坐标在黄色点上时触发鼠标事件cv2.putText(image,'0',(100+25*len(a),80),cv2.FONT_HERSHEY_PLAIN,2,(0,255,0),2)#--------同时将相应的数字写入吉他谱中cv2.imshow("image", image)#-----更新画面playsound(r"D:\音频文件\0_6.mp3")#-----同时播放音频文件if 1459 - 12 < x < 1459 + 12 and \477 - 12 < y < 477 + 12:cv2.putText(image, '0', (100+ 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\0_5.mp3")if 1464 - 12 < x < 1464+ 12 and \513 - 12 < y < 513 + 12:cv2.putText(image, '0', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\0_4.mp3")if 1466 - 12 < x < 1466 + 12 and \546 - 12 < y < 546 + 12:cv2.putText(image, '0', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\0_3.mp3")if 1465 - 12 < x < 1465 + 12 and \582 - 12 < y < 582 + 12:cv2.putText(image, '0', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\0_2.mp3")if 1469 - 12 < x < 1469 + 12 and \614 - 12 < y < 614 + 12:cv2.putText(image, '0', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\0_1.mp3")#------------------------第一品if 1374-12<x<1374+12  and \444-12<y<444+12:cv2.putText(image,'1',(100+25*len(a),80),cv2.FONT_HERSHEY_PLAIN,2,(0,255,0),2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_1.mp3")if 1379 - 12 < x < 1379 + 12 and \477 - 12 < y < 477 + 12:cv2.putText(image, '1', (100+ 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_2.mp3")if 1381 - 12 < x < 1381+ 12 and \513 - 12 < y < 513 + 12:cv2.putText(image, '1', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_3.mp3")if 1383 - 12 < x < 1383 + 12 and \546 - 12 < y < 546 + 12:cv2.putText(image, '1', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_4.mp3")if 1386 - 12 < x < 1386 + 12 and \582 - 12 < y < 582 + 12:cv2.putText(image, '1', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_5.mp3")if 1387 - 12 < x < 1387 + 12 and \617 - 12 < y < 617 + 12:cv2.putText(image, '1', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\1_6.mp3")#-------------第二品if 1275 - 12 < x < 1275 + 12 and \439 - 12 < y < 439 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 80), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_1.mp3")if 1277 - 12 < x < 1277 + 12 and \474 - 12 < y < 474 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_2.mp3")if 1280 - 12 < x < 1280 + 12 and \511 - 12 < y < 511 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_3.mp3")if 1279 - 12 < x < 1279 + 12 and \545 - 12 < y < 545 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_4.mp3")if 1282 - 12 < x < 1282 + 12 and \584 - 12 < y < 584 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_5.mp3")if 1282 - 12 < x < 1282 + 12 and \619 - 12 < y < 619 + 12:cv2.putText(image, '2', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\2_6.mp3")#--------------------------333if 1180 - 12 < x < 1180 + 12 and \436 - 12 < y < 436 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 80), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_1.mp3")if 1184 - 12 < x < 1184 + 12 and \474 - 12 < y < 474 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_2.mp3")if 1185 - 12 < x < 1185 + 12 and \511 - 12 < y < 511 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_3.mp3")if 1184 - 12 < x < 1184 + 12 and \549 - 12 < y < 549 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_4.mp3")if 1185 - 12 < x < 1185 + 12 and \584 - 12 < y < 584 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_5.mp3")if 1187 - 12 < x < 1187 + 12 and \623 - 12 < y < 623 + 12:cv2.putText(image, '3', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\3_6.mp3")#--------------------4if 1086 - 12 < x < 1086 + 12 and \433 - 12 < y < 433 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 80), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_1.mp3")if 1092 - 12 < x < 1092 + 12 and \471 - 12 < y < 471 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_2.mp3")if 1095 - 12 < x < 1095 + 12 and \511 - 12 < y < 511 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_3.mp3")if 1095 - 12 < x < 1095 + 12 and \549 - 12 < y < 549 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_4.mp3")if 1095 - 12 < x < 1095 + 12 and \587 - 12 < y < 587 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_5.mp3")if 1095 - 12 < x < 1095 + 12 and \627 - 12 < y < 627 + 12:cv2.putText(image, '4', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\4_6.mp3")#---------------5if 1008-12<x<1008+12  and \430-12<y<430+12:cv2.putText(image,'5',(100+25*len(a),80),cv2.FONT_HERSHEY_PLAIN,2,(0,255,0),2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_1.mp3")if 1006 - 12 < x < 1006 + 12 and \471 - 12 < y < 471 + 12:cv2.putText(image, '5', (100+ 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_2.mp3")if 1006 - 12 < x < 1006+ 12 and \511 - 12 < y < 511 + 12:cv2.putText(image, '5', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_3.mp3")if 1010 - 12 < x < 1010 + 12 and \549 - 12 < y < 549 + 12:cv2.putText(image, '5', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_4.mp3")if 1010 - 12 < x < 1010 + 12 and \589 - 12 < y < 589 + 12:cv2.putText(image, '5', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_5.mp3")if 1010 - 12 < x < 1010 + 12 and \629 - 12 < y < 629 + 12:cv2.putText(image, '5', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\5_6.mp3")#-----------------6666if 921-12<x<921+12  and \426-12<y<426+12:cv2.putText(image,'6',(100+25*len(a),80),cv2.FONT_HERSHEY_PLAIN,2,(0,255,0),2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_1.mp3")if 922 - 12 < x < 922 + 12 and \471 - 12 < y < 471 + 12:cv2.putText(image, '6', (100+ 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_2.mp3")if 921 - 12 < x < 921 + 12 and \511 - 12 < y < 511 + 12:cv2.putText(image, '6', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_3.mp3")if 919 - 12 < x < 919 + 12 and \551 - 12 < y < 551 + 12:cv2.putText(image, '6', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_4.mp3")if 923 - 12 < x < 923 + 12 and \592 - 12 < y < 592 + 12:cv2.putText(image, '6', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_5.mp3")if 920 - 12 < x < 920 + 12 and \637 - 12 < y < 637 + 12:cv2.putText(image, '6', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\6_6.mp3")#-----------------77if 842-12<x<842+12  and \425-12<y<425+12:cv2.putText(image,'7',(100+25*len(a),80),cv2.FONT_HERSHEY_PLAIN,2,(0,255,0),2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_1.mp3")if 842 - 12 < x < 842 + 12 and \470 - 12 < y < 470 + 12:cv2.putText(image, '7', (100+ 25 * len(a), 110), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_2.mp3")if 846 - 12 < x < 846 + 12 and \507 - 12 < y < 507 + 12:cv2.putText(image, '7', (100 + 25 * len(a), 140), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_3.mp3")if 845 - 12 < x < 845 + 12 and \552 - 12 < y < 552 + 12:cv2.putText(image, '7', (100 + 25 * len(a), 170), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_4.mp3")if 846 - 12 < x < 846 + 12 and \595 - 12 < y < 595 + 12:cv2.putText(image, '7', (100 + 25 * len(a), 200), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_5.mp3")if 846 - 12 < x < 846 + 12 and \639 - 12 < y < 639 + 12:cv2.putText(image, '7', (100 + 25 * len(a), 230), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2)cv2.imshow("image", image)playsound(r"D:\音频文件\7_6.mp3")image=cv2.resize(image,(1500,700))#将图片拉伸成相应的大小#画出吉他谱cv2.rectangle(image, (100,50), (1400,240),(255,255,255), cv2.FILLED)
cv2.line(image,(100,70),(1400,70),(255,0,0),2)
cv2.line(image,(100,100),(1400,100),(255,0,0),2)
cv2.line(image,(100,130),(1400,130),(255,0,0),2)
cv2.line(image,(100,160),(1400,160),(255,0,0),2)
cv2.line(image,(100,190),(1400,190),(255,0,0),2)
cv2.line(image,(100,220),(1400,220),(255,0,0),2)#将吉他上的所有建用黄点标出cv2.putText(image,"0",(1453,383),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1457,447),12,(0,255,255),-1)
cv2.circle(image,(1459 ,478),12,(0,255,255),-1)
cv2.circle(image,(1464 ,514),12,(0,255,255),-1)
cv2.circle(image,(1466 ,546),12,(0,255,255),-1)
cv2.circle(image,(1465 ,581),12,(0,255,255),-1)
cv2.circle(image,(1469 ,614),12,(0,255,255),-1)cv2.putText(image,"1",(1373,389),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1374,444),12,(0,255,255),-1)
cv2.circle(image,(1379 ,477),12,(0,255,255),-1)
cv2.circle(image,(1381 ,513),12,(0,255,255),-1)
cv2.circle(image,(1383 ,546),12,(0,255,255),-1)
cv2.circle(image,(1386 ,582),12,(0,255,255),-1)
cv2.circle(image,(1387 ,617),12,(0,255,255),-1)cv2.putText(image,"2",(1277,383),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1275,439),12,(0,255,255),-1)
cv2.circle(image,(1277 ,474),12,(0,255,255),-1)
cv2.circle(image,(1280 ,511),12,(0,255,255),-1)
cv2.circle(image,(1279 ,545),12,(0,255,255),-1)
cv2.circle(image,(1282 ,584),12,(0,255,255),-1)
cv2.circle(image,(1282 ,619),12,(0,255,255),-1)cv2.putText(image,"3",(1181,379),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1180,436),12,(0,255,255),-1)
cv2.circle(image,(1184 ,473),12,(0,255,255),-1)
cv2.circle(image,(1185 ,511),12,(0,255,255),-1)
cv2.circle(image,(1184 ,549),12,(0,255,255),-1)
cv2.circle(image,(1185 ,585),12,(0,255,255),-1)
cv2.circle(image,(1187 ,623),12,(0,255,255),-1)cv2.putText(image,"4",(1097,369),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1086,433),12,(0,255,255),-1)
cv2.circle(image,(1092 ,471),12,(0,255,255),-1)
cv2.circle(image,(1095 ,511),12,(0,255,255),-1)
cv2.circle(image,(1095 ,549),12,(0,255,255),-1)
cv2.circle(image,(1095 ,587),12,(0,255,255),-1)
cv2.circle(image,(1095 ,627),12,(0,255,255),-1)cv2.putText(image,"5",(1013,364),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(1008,430),12,(0,255,255),-1)
cv2.circle(image,(1006 ,471),12,(0,255,255),-1)
cv2.circle(image,(1006 ,511),12,(0,255,255),-1)
cv2.circle(image, (1010 ,549),12,(0,255,255),-1)
cv2.circle(image,(1010 ,589),12,(0,255,255),-1)
cv2.circle(image,(1009 ,629),12,(0,255,255),-1)cv2.putText(image,"6",(932,359),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(921,426),12,(0,255,255),-1)
cv2.circle(image,(922 ,471),12,(0,255,255),-1)
cv2.circle(image,(921 ,511),12,(0,255,255),-1)
cv2.circle(image,(919 ,551),12,(0,255,255),-1)
cv2.circle(image,(923 ,592),12,(0,255,255),-1)
cv2.circle(image,(920 ,637),12,(0,255,255),-1)cv2.putText(image,"7",(852,354),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),5)
cv2.circle(image,(842,425),12,(0,255,255),-1)
cv2.circle(image,(842,470),12,(0,255,255),-1)
cv2.circle(image,(846 ,507),12,(0,255,255),-1)
cv2.circle(image,(845 ,552),12,(0,255,255),-1)
cv2.circle(image,(846 ,595),12,(0,255,255),-1)
cv2.circle(image,(846 ,639),12,(0,255,255),-1)cv2.namedWindow('image')
cv2.setMouseCallback("image",Event_Lbuttondown)#相应鼠标事件
cv2.imshow("image",image)#显示图片,将矩阵空间变为图片cv2.waitKey(0)#等待键盘操作执行相应操作
cv2.destroyWindow()

【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)相关推荐

  1. Java Swing图书管理系统桌面软件附源码

    Java Swing图书管理系统桌面软件附源码,亲测可运行. 功能界面如下: 登录界面,默认账号admin密码admin 主功能界面: 添加图书功能界面: 部分源码: 完整源码下载地址: JavaSw ...

  2. 闲来无事,用java写了一个魔方小程序。附源码

    闲来无事,用java写了一个魔方小程序.附源码 使用三维数组.相对来说还是简单.呵呵. import java.util.ArrayList; import java.util.List; impor ...

  3. java实现魔方_闲来无事,用java写了一个魔方小程序。附源码 | 学步园

    闲来无事,用java写了一个魔方小程序.附源码 使用三维数组.相对来说还是简单.呵呵. import java.util.ArrayList; import java.util.List; impor ...

  4. Vue 彩色头像|一个有趣的头像生成器 附源码

    前言 这是一款矢量风格的头像生成器,您可以搭配不同的素材组件,生成属于您自己的个性化头像. 介绍 您可能感兴趣的功能: 可视化组件配置栏 随机生成头像 重做/撤消 国际化 批量生成多个头像 在线体验 ...

  5. 手把手教你做一个数据图表生成器(附源码)...

    我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...

  6. java转俯视图,如何使用纯CSS实现一个足球场的俯视图(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现一个足球场的俯视图(附源码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.c ...

  7. 用Python写了一个网易云音乐(附源码、视频教程)

    今天给大家分享一个实战项目,用Python整个网易云出来,实现音乐自由!文末附本项目源码以及视频教程! 这一次,咱们来玩点花活,整个网易云出来,实现音乐自由! 环境 Python3.6.8 PyCha ...

  8. PYQT5+openCV项目实战:微循环仪图片、视频记录和人工对比软件(附源码)

    文章目录 1.主要功能 1.1主界面说明 1.2回查记录界面说明 2.主界面功能详解 2.1 摄像头操作 2.2拍照功能 2.3保存图片 2.4录制短视频 2.5查看记录 2.6新建名称 3.子界面功 ...

  9. 来,一起手撸一个简版 Redis(附源码)

    点击上方 视学算法,选择 设为星标 优质文章,及时送达 作者 | 凯京技术团队 来自 | my.oschina.net/keking/blog/3037372 今天主要介绍两个开源项目,然后创建应用最 ...

  10. 动手写一个Remoting接口测试工具(附源码下载)

    基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间.所以,我想写一个能自 ...

最新文章

  1. java.text.SimpleDateFormat多线程下的问题
  2. idea python-IDEA里如何安装Python插件打造开发环境(图文详解)
  3. Docker最佳实践-部署LNMP环境
  4. Mysql的事务事务的特征事务的隔离级别
  5. effective c++_【阅读笔记】Effective C++()
  6. QT实现单遍线框渲染
  7. 电视安卓和linux系统软件,安卓和LINUX系统哪种更适合网络电视机顶盒?
  8. java scanner类int_Java之 Scanner类
  9. ArcGIS 10.2中栅格数据的属性表问题
  10. 趣读:程序员泪流满面的20个瞬间!
  11. c语言课程设计模块结构图,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  12. linux-简单进程查询
  13. Mysql设置允许外网访问(图文)
  14. mysql数据库无限分类_php+mysql数据库实现无限分类的方法
  15. PAT乙级(1025 反转链表)
  16. android获取电量的方法,Android获取电池电量和电池容量
  17. 2020-05-21
  18. 获取高匿代理ip的步骤思路(推荐使用--刚找到的方法判断是否高匿)
  19. orientdb实战
  20. 基于Redis实现查找附近的人

热门文章

  1. 我的世界JAVA会支持光追吗_《我的世界》RTX beta版视频体验:仿佛打破了次元壁...
  2. stm32F4方向+脉冲发生器
  3. CMake 安装升级更高版本
  4. 5万字 | 2020大厂面试总结,PDF供下载
  5. SCI期刊分区/期刊名词,看完秒懂~
  6. 锐捷长ping_锐捷实战系列(二) Wireshark抓包分析Ping过程
  7. 需要一个用于Postgres的UUID生成器?这里有两种设置方法
  8. 山寨版学子商城——成功上线!
  9. java udp 断开_java – 如何中断阻塞调用UDP socket的receive()[复制]
  10. 计算机组成与系统结构第五版pdf,计算机组成与系统结构1_5习题整理版.pdf