Мои данные выглядят так, X и Y - центр дефекта. Я хочу назначить дефект в матрице.
defect_ID X Y X_range Y_range
1 2 3 5 0
2 7 12 1 2
Я создал матрицу 200 * 200 только с 0. Я хочу поставить 1 в матрице следующим образом:
Каждая координата X Y будет равна 1. Например, мы можем увидеть ID 1 , что позволит 1 моей ячейке координаты (2,3). ID 2 позволит 1 в мою камеру (7,12).
Я сделал это с кодом
img<-matrix(0,200,200)
img[cbind(data[,X],data[,Y])]<-1
Теперь я хочу сделать что-нибудь хитрое.
Я беру дефектный_идентификатор и хочу присвоить значение 1 всем точкам вокруг этого дефекта, используя мои значения X_range и Y_range. Для 1 дефекта мы берем центр (X, Y) и движемся, используя X и Y_range.
псевдокод
for defect_ID 1
img[X,Y]<-1
img[X+ 1:X_range,Y]<-1
img[X,Y+1:Y_range]<-1
Например, если мы посмотрим на ID 1, я хочу присвоить 1 точке (2,3), (3,3), (4,3), (5,3), (6,3), (7,3)
В случае, если у меня X_range и Y_range> 1. X Y будет центром. Тогда я хочу двигаться только в одном направлении.
Например, для идентификатора 2 я хочу присвоить 1 своим ячейкам (7,12), (8,12), (7,13), (7,14)