我在矩阵中有一个对象的足迹,简而言之就是对象占据的单元格(对象是一部分,标记为0的单元格未被占用,标记为1的单元格被对象占据).然后,我有一个list<pair<int, int> >矩阵坐标的被占用单元格列表.
如何查找属于该对象的该对象的所有边界单元格?(相邻的电池是例如(x1, y1)和(x2, y2) if abs(x1-x2)<=1 && abs(y1-y2)<=1).
0 0 0 0 0
0 0 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 1 0 0
Run Code Online (Sandbox Code Playgroud)
如果所有相邻像素均为1,则将像素设置为0.其余1位于边界上:
for (x = 1; x < width-1; ++x) {
for (y = 1; y < height-1; ++y) {
if (data(x+1,y) && data(x-1,y) && data(x,y+1) && data(x,y-1)) {
data(x,y) = 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)