1.一種圖像智能選區(qū)方法,適于在計(jì)算設(shè)備中執(zhí)行,該方法包括步驟:
確定用戶畫(huà)筆所覆蓋的圖像區(qū)域,以及該圖像區(qū)域的中心像素點(diǎn)和外周線上的像素點(diǎn);
計(jì)算相鄰像素點(diǎn)之間的顏色差值作為所述相鄰像素點(diǎn)之間的距離;
將所述圖像區(qū)域中的每個(gè)像素點(diǎn)作為節(jié)點(diǎn),并從中選取一個(gè)像素點(diǎn)集合,使得該集合中的每個(gè)像素點(diǎn)根據(jù)最短路徑算法到中心像素點(diǎn)的第一最短距離L1,不大于到外周線上任意像素點(diǎn)的第二最短距離L2;
其中,所述像素點(diǎn)集合所覆蓋的區(qū)域即為該用戶畫(huà)筆所選中的區(qū)域。
2.如權(quán)利要求1所述的方法,還包括:
以每個(gè)像素點(diǎn)為節(jié)點(diǎn),以相鄰量像素點(diǎn)的顏色差值為兩個(gè)節(jié)點(diǎn)之間的距離值,構(gòu)建所述像素點(diǎn)的距離無(wú)向圖。
3.如權(quán)利要求1或2所述的方法,所述從所述圖像區(qū)域的像素點(diǎn)中選取一個(gè)像素點(diǎn)集合的步驟包括:
創(chuàng)建一個(gè)初始為空的小根堆結(jié)構(gòu)的優(yōu)先隊(duì)列;
將中心像素點(diǎn)和所有外周線上的像素點(diǎn)加入所述優(yōu)先隊(duì)列中;
分別以所述中心像素點(diǎn)和外周上的像素點(diǎn)為起點(diǎn),根據(jù)最短路徑算法遍歷所述圖像區(qū)域內(nèi)的所有像素點(diǎn);以及
確定所述中心像素所走過(guò)的路徑,并選取該路徑上的所有點(diǎn)作為所述像素點(diǎn)集合。
4.如權(quán)利要求3所述的方法,將所述中心像素點(diǎn)和所有外周線上的像素點(diǎn)所對(duì)應(yīng)的節(jié)點(diǎn)的權(quán)值均設(shè)為初始值,所述根據(jù)最短路徑算法遍歷所述圖像區(qū)域內(nèi)的所有像素點(diǎn)的步驟包括:
步驟1:取優(yōu)先隊(duì)列的隊(duì)頭,并刪掉頭節(jié)點(diǎn);
步驟2:判斷所刪掉的節(jié)點(diǎn)所在位置是否可達(dá),如果不可達(dá),重復(fù)步驟1,直到取出一個(gè)可達(dá)的節(jié)點(diǎn),其中,如果隊(duì)列為空,則算法結(jié)束;
步驟3:將取出的節(jié)點(diǎn)向相鄰節(jié)點(diǎn)移動(dòng)一步,計(jì)算起始節(jié)點(diǎn)到每個(gè)相鄰節(jié)點(diǎn)的距離作為該相鄰節(jié)點(diǎn)的權(quán)值,并將所述相鄰節(jié)點(diǎn)加入到所述優(yōu)先隊(duì)列中;
步驟4:判斷優(yōu)先隊(duì)列的頭節(jié)點(diǎn)是否為從中心像素點(diǎn)出發(fā)后到達(dá)的節(jié)點(diǎn),如果是,則將該頭節(jié)點(diǎn)從所述優(yōu)先隊(duì)列中刪除,并將其對(duì)應(yīng)的像素點(diǎn)加入到所述集合中;
步驟5:重復(fù)步驟2-4,直到遍歷完所述圖像區(qū)域內(nèi)的所有像素點(diǎn)。
5.如權(quán)利要求1或2所述的方法,所述在所述圖像區(qū)域的像素點(diǎn)中選取一個(gè)集合的步驟包括:
創(chuàng)建一個(gè)初始為空的小根堆結(jié)構(gòu)的優(yōu)先隊(duì)列;
對(duì)于所述圖像區(qū)域的任意一個(gè)像素點(diǎn),將其加入到所述優(yōu)先隊(duì)列中;
以該像素點(diǎn)為起點(diǎn),根據(jù)最短路徑算法求得該像素點(diǎn)到中心像素點(diǎn)的第一最短距離L1,以及到外周線上每個(gè)像素點(diǎn)的第二最短距離L2;
如果所述第一最短距離L1不大于任意一個(gè)所述第二最短距離L2,則將該像素點(diǎn)加入到所述像素點(diǎn)集合中。
6.如權(quán)利要求5所述的方法,對(duì)于任意一個(gè)像素點(diǎn),將其對(duì)應(yīng)的節(jié)點(diǎn)的權(quán)值設(shè)為初始值,所述根據(jù)最短路徑算法求得該像素點(diǎn)到中心像素點(diǎn)的第一最短距離L1的步驟包括:
步驟1:取優(yōu)先隊(duì)列的隊(duì)頭,并刪掉頭節(jié)點(diǎn);
步驟2:判斷所刪掉的節(jié)點(diǎn)所在位置是否可達(dá),如果不可達(dá),重復(fù)步驟1,直到取出一個(gè)可達(dá)的節(jié)點(diǎn),其中,若當(dāng)前節(jié)點(diǎn)為中心像素點(diǎn),則算法結(jié)束;
步驟3:將取出的節(jié)點(diǎn)向相鄰節(jié)點(diǎn)移動(dòng)一步,計(jì)算起始節(jié)點(diǎn)到每個(gè)相鄰節(jié)點(diǎn)的距離作為該相鄰節(jié)點(diǎn)的權(quán)值,并將所述相鄰節(jié)點(diǎn)加入到所述優(yōu)先隊(duì)列中;
步驟4:重復(fù)步驟2、3,直到中心像素點(diǎn)成為優(yōu)先隊(duì)列的頭節(jié)點(diǎn),此時(shí)該頭節(jié)點(diǎn)的權(quán)值即為到該中心像素點(diǎn)的第一最短距離L1。
7.如權(quán)利要求5所述的方法,對(duì)于任意一個(gè)像素點(diǎn),將其對(duì)應(yīng)的節(jié)點(diǎn)的權(quán)值設(shè)為初始值,所述根據(jù)最短路徑算法求得該像素點(diǎn)到外周線上每個(gè)像素點(diǎn)的第二最短距離L2的步驟包括:
步驟1:取優(yōu)先隊(duì)列的隊(duì)頭,并刪掉頭節(jié)點(diǎn);
步驟2:判斷所刪掉的節(jié)點(diǎn)所在位置是否可達(dá),如果不可達(dá),重復(fù)步驟1,直到取出一個(gè)可達(dá)的節(jié)點(diǎn),其中,若當(dāng)前節(jié)點(diǎn)為外周線上的像素點(diǎn),則算法結(jié)束;
步驟3:將取出的節(jié)點(diǎn)向相鄰節(jié)點(diǎn)移動(dòng)一步,計(jì)算起始節(jié)點(diǎn)到每個(gè)相鄰節(jié)點(diǎn)的距離作為該相鄰節(jié)點(diǎn)的權(quán)值,并將所述相鄰節(jié)點(diǎn)加入到所述優(yōu)先隊(duì)列中;
步驟4:重復(fù)步驟2、3,直到外周線上的像素點(diǎn)成為優(yōu)先隊(duì)列的頭節(jié)點(diǎn),此時(shí)該頭節(jié)點(diǎn)的權(quán)值即為到該外周像素點(diǎn)的第二最短距離L1。
8.如權(quán)利要求1所述的方法,若相鄰像素點(diǎn)為X像素和Y像素,則其顏色差值=abs(RX–RY)+abs(GX–GY)+abs(BX–BY)。
9.一種圖像智能選區(qū)裝置,包括:
區(qū)域確定單元,適于確定用戶畫(huà)筆所覆蓋的圖像區(qū)域,以及該圖像區(qū)域的中心像素點(diǎn)和外周線上的像素點(diǎn);
距離計(jì)算單元,計(jì)算相鄰像素點(diǎn)之間的顏色差值作為所述相鄰像素點(diǎn)之間的距離;
集合選取單元,適于將所述圖像區(qū)域中的每個(gè)像素點(diǎn)作為節(jié)點(diǎn),并從中選取一個(gè)像素點(diǎn)集合,使得該集合中的每個(gè)像素點(diǎn)根據(jù)最短路徑算法到中心像素點(diǎn)的第一最短距離L1,不大于到外周線上任意像素點(diǎn)的第二最短距離L2;其中,所述像素點(diǎn)集合所覆蓋的區(qū)域即為該用戶畫(huà)筆所選中的區(qū)域。
10.一種計(jì)算設(shè)備,包括:
存儲(chǔ)器,被配置用于存儲(chǔ)程序代碼;
處理器,被配置用于根據(jù)所述存儲(chǔ)器中存儲(chǔ)的所述程序代碼中的指令,執(zhí)行如權(quán)利要求1-8中任一項(xiàng)所述的圖像智能選區(qū)方法。