資源簡(jiǎn)介
具體介紹見(jiàn):https://blog.csdn.net/qq_32107283/article/details/88307423
colordraw.py用來(lái)畫出由識(shí)別后得到的字符串來(lái)轉(zhuǎn)換為顏色圖,colordetect.py用來(lái)實(shí)現(xiàn)識(shí)別顏色加kociemba算法應(yīng)用
壓縮包里還有對(duì)應(yīng)的六個(gè)面的魔方照片,運(yùn)行python colordetect就可以看效果了
希望有什么建議隨時(shí)提出謝謝共享~~~
代碼片段和文件信息
#?-*-?coding:utf-8?-*-
__author__?=?‘zhanghongye‘
import?cv2
import?numpy?as?np
import?sys
#sys.path.append(‘/home/zhy/桌面/CubeSolver-master‘)
from?colordraw?import?*
import?math
import?json
import?kociemba
import?time
from?multiprocessing?import?Pool
kernel_15?=?np.ones((1515)np.uint8)#15x15的卷積核
kernel_50?=?np.ones((5050)np.uint8)#50x50的卷積核
draw?=?np.zeros((48006400?3)?dtype=“uint8“)#創(chuàng)建一個(gè)高4800*寬6400畫布
#處理圖片
def?colorMatch(side):
????
????cube_rgb?=?cv2.imread(?side?+?‘.jpg‘)
????cube_gray?=?cv2.cvtColor(cube_rgb?cv2.COLOR_BGR2GRAY)#顏色轉(zhuǎn)換gray
????cube_hsv?=?cv2.cvtColor(cube_rgbcv2.COLOR_BGR2HSV)#顏色轉(zhuǎn)換hsv
????cube_gray?=?cv2.adaptiveThreshold(cube_gray255cv2.ADAPTIVE_THRESH_GAUSSIAN_Ccv2.THRESH_BINARY112)#自適應(yīng)濾波
????#cv2.namedWindow(sidecv2.WINDOW_NORMAL)
????#cv2.imshow(sidecube_rgb)
????#?白色
????lower_white?=?np.array([0?0?201])
????upper_white?=?np.array([180?50?255])
????white_mask?=?cv2.inRange(cube_hsv?lower_white?upper_white)
????white_erosion?=?cv2.erode(white_mask?kernel_15?iterations?=?1)
????white_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?white_erosion)
????#紅色
????‘‘‘lower_red?=?np.array([05050])
????upper_red?=?np.array([10255255])
????red_mask0?=?cv2.inRange(cube_hsv?lower_red?upper_red)
????lower_red?=?np.array([172?135?150])
????upper_red?=?np.array([179?240?255])
????red_mask1?=?cv2.inRange(cube_hsv?lower_red?upper_red)
????red_mask?=?red_mask0?+?red_mask1
????‘‘‘
????lower_red?=?np.array([170?110?145])
????upper_red?=?np.array([182?240?255])
????red_mask?=?cv2.inRange(cube_hsv?lower_red?upper_red)
????red_erosion?=?cv2.erode(red_mask?kernel_15?iterations?=?1)
????red_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?red_erosion)
????#橙色
????lower_orange?=?np.array([3?115?195])
????upper_orange?=?np.array([9?190?255])
????orange_mask?=?cv2.inRange(cube_hsv?lower_orange?upper_orange)
????orange_erosion?=?cv2.erode(orange_mask?kernel_15?iterations?=?1)
????orange_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?orange_erosion)
????#黃色
????lower_yellow?=?np.array([20?125?142])
????upper_yellow?=?np.array([34?243?255])
????yellow_mask?=?cv2.inRange(cube_hsv?lower_yellow?upper_yellow)
????yellow_erosion?=?cv2.erode(yellow_mask?kernel_15?iterations?=?1)
????yellow_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?yellow_erosion)
????#綠色
????lower_green?=?np.array([68140120])
????upper_green?=?np.array([82255245])
????green_mask?=?cv2.inRange(cube_hsv?lower_green?upper_green)
????green_erosion?=?cv2.erode(green_mask?kernel_15?iterations?=?1)
????green_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?green_erosion)
????#藍(lán)色
????lower_blue?=?np.array([95?123?109])
????upper_blue?=?np.array([124?253?240])
????blue_mask?=?cv2.inRange(cube_hsv?lower_blue?upper_blue)
????blue_erosion?=?cv2.erode(blue_mask?kernel_15?iterations?=?1)
????blue_res?=?cv2.bitwise_and(cube_rgb?cube_rgb?mask?=?blue_erosion)
????#總掩膜
????mask?=?red_erosion?+?green_erosion?+?yellow_erosion?+
評(píng)論
共有 條評(píng)論