亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種對實物象棋棋子移動識別方法

文檔序號:10594602閱讀:529來源:國知局
一種對實物象棋棋子移動識別方法
【專利摘要】本發(fā)明公開了一種對實物象棋棋子移動識別方法,用于準(zhǔn)確的識別實物象棋棋子的移動。本發(fā)明通過對實物象棋的棋子移動進行圖像的讀取和識別,來判斷實物象棋的究竟哪個棋子進行了移動,并且移動到哪個位置,從而能夠使電腦進行相應(yīng)的對著。
【專利說明】
_種對實物象棋棋子移動識別方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及一種象棋的識別方法。
【背景技術(shù)】
[0002]現(xiàn)在人們經(jīng)常與電腦進行下棋。一種是直接在電腦上通過鼠標(biāo)與電腦軟件對弈,另外一種是通過實物象棋與電腦對弈,棋手每下一步棋,電腦通過攝像頭讀取圖像數(shù)據(jù),電腦軟件根據(jù)棋手的棋招給出相應(yīng)的招數(shù),然后再控制機械手抓取實物象棋在真實棋盤中進行落子。對于后面這種情況,就需要對實物象棋進行準(zhǔn)確的識別。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的是提供一種對實物象棋棋子移動識別方法,用于準(zhǔn)確的識別實物象棋棋子的移動。
[0004]本發(fā)明提供的技術(shù)方案是:
[0005]—種對實物象棋棋子移動識別方法,包括以下步驟:
[0006]I)首先將棋子走動前后的圖像分別進行預(yù)處理,獲得兩幅圖像;
[0007]2)將兩幅圖像相減得到圖像G1,圖像Gl上顯示,在棋子移動前后的位置處有2個月牙型的白色亮斑,而其他區(qū)域都是黑色,越黑的地方表示是該處像素點的值越接近零,因為該圖像是兩幅圖像的差圖像,所以該圖像的黑色區(qū)域代表的是兩幅圖像在該處的像素點的值接近,也就是前后兩幅圖像沒有變化的地方,那么相反地,越亮的地方代表前后兩幅圖像在該處越不接近,也就是變化的地方;
[0008]3)對圖像Gl中亮區(qū)域進行處理得到具體的移動前后坐標(biāo),包括以下步驟:
[0009 ]①閾值選擇,選出亮度在200到255之間的區(qū)域得到圖像G2 ;
[0010]②閉運算去除區(qū)域中一些小的隔斷區(qū)域得到圖像G3,閉運算就是通過一個指定大小形狀的圖形作為結(jié)構(gòu)元素,先對圖像進行膨脹操作,然后進行腐蝕操作,目的是在不明顯改變區(qū)域邊界大小的情況下,填充物體內(nèi)細(xì)小空間,連接相鄰區(qū)域和平滑邊界,膨脹的具體操作就是用結(jié)構(gòu)元素去掃描圖像每一個像素點,如果結(jié)構(gòu)元素內(nèi)一個灰色區(qū)域像素點都沒有,就什么都不做,如果結(jié)構(gòu)元素內(nèi)包含任意一個及以上的像素點,那就在原來灰色的區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都加進來,腐蝕的具體操作就是在掃描過程中如果結(jié)構(gòu)元素內(nèi)所有的點都是灰色區(qū)域,那就什么都不做,否則就在原來灰色區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都減去;
[0011]③填充運算除去一些空心區(qū)域得到圖像G4,填充運算就是如果某個區(qū)域是非灰色選中區(qū)域,但是它被灰色選中區(qū)域所包圍了,那就把該區(qū)域也選中;
[0012]④縱向矩形開運算,主要是為了分開兩個月牙區(qū)域,使之成為2個獨立的月牙區(qū)域,以長為20個像素點,寬為2個像素點的長方形為結(jié)構(gòu)元素,對圖像G4進行開運算后得到圖像G5,開運算的具體操作過程是先腐蝕再膨脹;
[0013]⑤橫向矩形開運算,以長為2個像素點,寬為20個像素點的長方形為結(jié)構(gòu)元素,對圖像G5進行開運算后得到圖像G6;
[0014]⑥兩個開運算得到的區(qū)域的交集,不管是橫向移動還是縱向移動,經(jīng)過上兩步和這一步都能分開兩個相鄰的棋子區(qū)域;
[0015]⑦面積選擇,選擇面積大于150個像素點的區(qū)域,排除圖像中的干擾;
[0016]⑧轉(zhuǎn)換為圓形得到圖像G8,根據(jù)等面積的原則,將分開的左右兩個區(qū)域轉(zhuǎn)換成兩個圓形區(qū)域;
[0017]⑨圓形中點即認(rèn)為是棋子的位置,從而得到棋子移動前的位置和移動后的位置。
[0018]本發(fā)明通過對實物象棋的棋子移動進行圖像的讀取和識別,來判斷實物象棋的究竟哪個棋子進行了移動,并且移動到哪個位置,從而能夠使電腦進行相應(yīng)的對著。
【附圖說明】
[0019]圖1為本發(fā)明對棋子移動處理的圖像一。
[0020]圖2為本發(fā)明對棋子移動處理的圖像二。
[0021]圖3為本發(fā)明對棋子移動處理的圖像三。
[0022 ]圖4為本發(fā)明對棋子移動處理的圖像四。
[0023 ]圖5為本發(fā)明對棋子移動處理的圖像五。
[0024]圖6為本發(fā)明對棋子移動處理的圖像六。
[0025]圖7為本發(fā)明對棋子移動處理的圖像七。
[0026]圖8為本發(fā)明對棋子移動處理的圖像八。
【具體實施方式】
[0027]下面結(jié)合附圖和【具體實施方式】對本發(fā)明進行詳細(xì)說明。
[0028]以紅方的“當(dāng)頭兵”向前移動一步為例進行說明,之所以選取這一步來介紹是因為移動的距離越短圖像處理起來越容易出錯。
[0029]1.首先將兩幅圖像進行預(yù)處理,在原本的三通道彩圖中取綠色單通道圖像。因為彩色圖像在本發(fā)明中亢余信息比較多,所以只需保留本發(fā)明所需的綠色單通道即可。
[0030]2.將兩幅圖像相減,得到圖像Gl,如圖1所示,可以清晰的看到在移動前后的位置處有2個月牙型的白色亮斑外,而其他地方都是黑色的,越黑的地方表示是該處像素點的值越接近零,因為該圖像是兩幅圖像的差圖像,所以該圖像的黑色區(qū)域代表的是兩幅圖像在該處的像素點的值接近,也就是前后兩幅圖像沒有變化的地方,那么相反地,越亮的地方代表前后兩幅圖像在該處越不接近,也就是變化的地方。同時,在圖像的右下角也有一些亮的區(qū)域,這是為可能移動前后環(huán)境光線發(fā)生變化導(dǎo)致出現(xiàn)亮區(qū)域,這屬于干擾,接下來的處理會對其進行特殊處理。
[0031]3.對亮區(qū)域進行處理得到具體的移動前后坐標(biāo)。
[0032]①閾值選擇,選出亮度在200到255之間的區(qū)域得到圖像G2,如圖2所示,肉眼可以觀察得到“月牙區(qū)域”也不是完整,有一些隔斷區(qū)域和鏤空區(qū)域,同時右下角的干擾也被選進來了,但是我們觀察后大致可以猜出2個月牙就是對應(yīng)棋子移動前后的位置。
[0033]②閉運算去除區(qū)域中一些小的隔斷區(qū)域得到圖像G3,如圖3所示,閉運算就是通過一個指定大小形狀的圖形作為結(jié)構(gòu)元素,先對圖像進行膨脹操作,然后進行腐蝕操作。目的是在不明顯改變區(qū)域邊界大小的情況下,填充物體內(nèi)細(xì)小空間,連接相鄰區(qū)域和平滑邊界。膨脹的具體操作就是用結(jié)構(gòu)元素(本發(fā)明中采用的是半徑為4個像素點的圓形圖形)去掃描圖像每一個像素點,如果結(jié)構(gòu)元素內(nèi)一個灰色區(qū)域像素點都沒有,就什么都不做,如果結(jié)構(gòu)元素內(nèi)包含任意一個及以上的像素點,那就在原來灰色的區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都加進來。腐蝕的具體操作就是在掃描過程中如果結(jié)構(gòu)元素內(nèi)所有的點都是灰色區(qū)域,那就什么都不做,不然就在原來灰色區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都減去。
[0034]③填充運算除去一些空心區(qū)域得到圖像G4,如圖4所示,填充運算就是如果某個區(qū)域是非灰色選中區(qū)域,但是它的被灰色選中區(qū)域所包圍了,那就把該區(qū)域也選中。此次是填充了一個中間的小圓圈。
[0035]④縱向矩形開運算。接下來的操作主要是為了分開兩個月牙區(qū)域,使之成為2個獨立的月牙區(qū)域。以長為20個像素點寬為2個像素點的長方形為結(jié)構(gòu)元素,對圖像G4進行開運算后得到圖像G5,如圖5所示,明顯可以看出開運算能夠從中間“劈開”兩個月牙。開運算的具體操作過程是先腐蝕再膨脹。
[0036]⑤橫向矩形開運算。以長為2個像素點寬為20個像素點的長方形為結(jié)構(gòu)元素(和上一步僅僅置換了長方形的長寬),對圖像G5進行開運算后得到圖像G6,如圖6所示,看起來好像沒有起什么作用,確實,這一步在此次移動處理中沒有起分開2個棋子位置的作用,但是它存在的意義在于處理那么縱向移動的情況。原理同上一步。
[0037]⑥兩個開運算得到的區(qū)域的交集。不管是橫向移動還是縱向移動,經(jīng)過上兩步和這一步都能分開兩個相鄰的棋子區(qū)域。需要聲明的是,第④到第⑥步都是為了處理只移動一格的情況,在移動了多格的情況下,這3步并沒有起作用。
[0038]⑦面積選擇。選擇面積大于150個像素點的區(qū)域,排除了上面提到的右下角的干擾。
[0039]⑧轉(zhuǎn)換為圓形得到圖像G7。根據(jù)等面積的原則,將分開的左右兩個區(qū)域轉(zhuǎn)換成兩個圓形區(qū)域,如圖7所示,到這里肉眼便可以很清晰的看出兩個棋子區(qū)域已經(jīng)浮現(xiàn)出來了。
[0040]⑨圓形中點即認(rèn)為是棋子的位置,從而得到棋子移動前的位置和移動后的位置;也就是能確定哪個棋子進行了移動,并且移動到了哪個位置。
[0041]以上步驟處理的是棋子移動情況的識別,當(dāng)出現(xiàn)吃子現(xiàn)象的時候,處理起來就稍微復(fù)雜一點,因為有棋子少掉了。如圖8所示,這是一副“帥”吃了“將”的圖像,處理的目的是確定兩者位置,可以看出,移動前的“帥”的位置比較明顯,而移動后的位置相對來說簡單進行上面步驟的處理是得不到的。除了先進行上面步驟的處理,能夠得到右邊“帥”的位置。然后再循環(huán)查找黑色方是否有棋子發(fā)生顏色改變,發(fā)生改變的棋子位置就是紅方移動后的位置。此方法需要保存黑色棋子的位置。至于紅黑棋子的識別,只需要在檢查一下該區(qū)域在綠色通道的平均亮度即可,黑棋子小于100,紅棋子大于100。
【主權(quán)項】
1.一種對實物象棋棋子移動識別方法,其特征在于,包括以下步驟: 1)首先將棋子走動前后的圖像分別進行預(yù)處理,獲得兩幅圖像; 2)將兩幅圖像相減得到圖像Gl,圖像Gl上顯示,在棋子移動前后的位置處有2個月牙型的白色亮斑,而其他區(qū)域都是黑色,越黑的地方表示是該處像素點的值越接近零,因為該圖像是兩幅圖像的差圖像,所以該圖像的黑色區(qū)域代表的是兩幅圖像在該處的像素點的值接近,也就是前后兩幅圖像沒有變化的地方,那么相反地,越亮的地方代表前后兩幅圖像在該處越不接近,也就是變化的地方; 3)對圖像Gl中亮區(qū)域進行處理得到具體的移動前后坐標(biāo),包括以下步驟: ①閾值選擇,選出亮度在200到255之間的區(qū)域得到圖像G2; ②閉運算去除區(qū)域中一些小的隔斷區(qū)域得到圖像G3,閉運算就是通過一個指定大小形狀的圖形作為結(jié)構(gòu)元素,先對圖像進行膨脹操作,然后進行腐蝕操作,目的是在不明顯改變區(qū)域邊界大小的情況下,填充物體內(nèi)細(xì)小空間,連接相鄰區(qū)域和平滑邊界,膨脹的具體操作就是用結(jié)構(gòu)元素去掃描圖像每一個像素點,如果結(jié)構(gòu)元素內(nèi)一個灰色區(qū)域像素點都沒有,就什么都不做,如果結(jié)構(gòu)元素內(nèi)包含任意一個及以上的像素點,那就在原來灰色的區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都加進來,腐蝕的具體操作就是在掃描過程中如果結(jié)構(gòu)元素內(nèi)所有的點都是灰色區(qū)域,那就什么都不做,否則就在原來灰色區(qū)域的基礎(chǔ)上把整個結(jié)構(gòu)元素所包含的區(qū)域都減去; ③填充運算除去一些空心區(qū)域得到圖像G4,填充運算就是如果某個區(qū)域是非灰色選中區(qū)域,但是它被灰色選中區(qū)域所包圍了,那就把該區(qū)域也選中; ④縱向矩形開運算,主要是為了分開兩個月牙區(qū)域,使之成為2個獨立的月牙區(qū)域,以長為20個像素點,寬為2個像素點的長方形為結(jié)構(gòu)元素,對圖像G4進行開運算后得到圖像G5,開運算的具體操作過程是先腐蝕再膨脹; ⑤橫向矩形開運算,以長為2個像素點,寬為20個像素點的長方形為結(jié)構(gòu)元素,對圖像G5進行開運算后得到圖像G6; ⑥兩個開運算得到的區(qū)域的交集,不管是橫向移動還是縱向移動,經(jīng)過上兩步和這一步都能分開兩個相鄰的棋子區(qū)域; ⑦面積選擇,選擇面積大于150個像素點的區(qū)域,排除圖像中的干擾; ⑧轉(zhuǎn)換為圓形得到圖像G8,根據(jù)等面積的原則,將分開的左右兩個區(qū)域轉(zhuǎn)換成兩個圓形區(qū)域; ⑨圓形中點即認(rèn)為是棋子的位置,從而得到棋子移動前的位置和移動后的位置。
【文檔編號】G06K9/40GK105956594SQ201610305082
【公開日】2016年9月21日
【申請日】2016年5月10日
【發(fā)明人】顧敏明, 黃世青
【申請人】浙江理工大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1