国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python識別圍棋定位棋盤位置

瀏覽:33日期:2022-07-28 09:03:04
目錄效果圖思路分析源碼:定位棋盤位置

最近需要做一個圍棋識別的項目,首先要將棋盤位置定位出來,效果圖如下:

效果圖

原圖

python識別圍棋定位棋盤位置

中間處理效果

python識別圍棋定位棋盤位置

最終結果

python識別圍棋定位棋盤位置

思路分析

我們利用python opencv的相關函數進行操作實現,根據棋盤顏色的特征,尋找到相關特征,將棋盤區域摳出來。最好從原始圖像中將棋盤位置截取出來。

源碼:定位棋盤位置

from PIL import ImageGrabimport numpy as npimport cv2from glob import globimglist = sorted(glob('screen/*.jpg'))for i in imglist:# while 1: img = cv2.imread(i) image = img.copy() w,h,c = img.shape img2 = np.zeros((w,h,c), np.uint8) img3 = np.zeros((w,h,c), np.uint8) # img = ImageGrab.grab() #bbox specifies specific region (bbox= x,y,width,height *starts top-left)hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower = np.array([10,0,0]) upper = np.array([40,255,255]) mask = cv2.inRange(hsv,lower,upper) erodeim = cv2.erode(mask,None,iterations=2) # 腐蝕 dilateim = cv2.dilate(erodeim,None,iterations=2) img = cv2.bitwise_and(img,img,mask=dilateim) frame = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, dst = cv2.threshold(frame, 100, 255, cv2.THRESH_BINARY) contours,hierarchy = cv2.findContours(dst, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) cv2.imshow('0',img) i = 0 maxarea = 0 nextarea = 0 maxint = 0 for c in contours:if cv2.contourArea(c)>maxarea: maxarea = cv2.contourArea(c) maxint = ii+=1 #多邊形擬合 epsilon = 0.02*cv2.arcLength(contours[maxint],True) if epsilon<1:continue#多邊形擬合 approx = cv2.approxPolyDP(contours[maxint],epsilon,True) [[x1,y1]] = approx[0] [[x2,y2]] = approx[2] checkerboard = image[y1:y2,x1:x2] cv2.imshow('1',checkerboard) cv2.waitKey(1000)cv2.destroyAllWindows()

帶保存圖像

from PIL import ImageGrabimport numpy as npimport cv2from glob import globimport osimglist = sorted(glob('screen/*.jpg'))a=0for i in imglist:# while 1: a=a+1 img = cv2.imread(i) image = img.copy() w,h,c = img.shape img2 = np.zeros((w,h,c), np.uint8) img3 = np.zeros((w,h,c), np.uint8) # img = ImageGrab.grab() #bbox specifies specific region (bbox= x,y,width,height *starts top-left)hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower = np.array([10,0,0]) upper = np.array([40,255,255]) mask = cv2.inRange(hsv,lower,upper) erodeim = cv2.erode(mask,None,iterations=2) # 腐蝕 dilateim = cv2.dilate(erodeim,None,iterations=2) img = cv2.bitwise_and(img,img,mask=dilateim) frame = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, dst = cv2.threshold(frame, 100, 255, cv2.THRESH_BINARY) contours,hierarchy = cv2.findContours(dst, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) # 保存圖片的地址 img_file_1 = './temp' # 確認上述地址是否存在 if not os.path.exists(img_file_1):os.mkdir(img_file_1) cv2.imshow('0',img) cv2.imwrite(img_file_1 + '/' + ’temp_%d.jpg’%a, img) i = 0 maxarea = 0 nextarea = 0 maxint = 0 for c in contours:if cv2.contourArea(c)>maxarea: maxarea = cv2.contourArea(c) maxint = ii+=1 #多邊形擬合 epsilon = 0.02*cv2.arcLength(contours[maxint],True) if epsilon<1:continue#多邊形擬合 approx = cv2.approxPolyDP(contours[maxint],epsilon,True) [[x1,y1]] = approx[0] [[x2,y2]] = approx[2] checkerboard = image[y1:y2,x1:x2] cv2.imshow('1',checkerboard) cv2.waitKey(1000) # 保存圖片的地址 img_file_2 = './checkerboard' # 確認上述地址是否存在 if not os.path.exists(img_file_2):os.mkdir(img_file_2) cv2.imwrite(img_file_2 + '/' + ’checkerboard_%d.jpg’%a, checkerboard)cv2.destroyAllWindows()

到此這篇關于python識別圍棋定位棋盤位置的文章就介紹到這了,更多相關python 圍棋定位棋盤位置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日本久操| 亚洲欧美第一 | 青青草国产免费一区二区 | 免费欧洲毛片a级视频无风险 | 日本一级毛片高清免费观看视频 | 免费国产a理论片 | 成人欧美一区二区三区黑人免费 | 又摸又揉又黄又爽的视频 | 久久精品久久精品国产大片 | 亚洲综合自拍 | 成年人毛片 | 一区二区在线播放福利视频 | 欧美日本韩国一区 | 成人免费看 | 国产成人免费在线视频 | 国产亚洲欧美在线人成aaaa | 国产一国产一级毛片视频在线 | 国产一区二区三区欧美 | 毛片免费高清免费 | 国产真实一区二区三区 | 欧美一区二区三区视频在线观看 | 欧美成人免费网在线观看 | 日韩a级片 | 日本高清aⅴ毛片免费 | 成年人在线观看网站 | 亚洲an日韩专区在线 | 欧美成人性色xxxx视频 | 成人免费国产欧美日韩你懂的 | 特级a毛片| 成人精品久久 | 毛片激情永久免费 | 香蕉超级碰碰碰97视频在线观看 | 日韩 欧美 国产 师生 制服 | 国产精品国产三级国产专区5o | 中文字幕成人免费高清在线视频 | 日本 欧美 国产 | 国产三级国产精品国产普男人 | 九九九九九九 | 日本免费人做人一区在线观看 | 成年人网站免费 | 一级特黄一欧美俄罗斯毛片 |