Для общего решения, которое работает независимо от количества цифр в data$anim
, используйте функцию sprintf
. Он работает следующим образом:
sprintf("%04d", 1)
# [1] "0001"
sprintf("%04d", 104)
# [1] "0104"
sprintf("%010d", 104)
# [1] "0000000104"
В вашем случае вы, вероятно, захотите: data$anim <- sprintf("%06d", data$anim)
Первое, что нужно отметить, это то, что второй и третий параметры для Core.line должны быть точками.
В вашей замене вы удалили символ добавления (+). Хм. Я не думаю, что вы можете это сделать, если вы конвертируете строку кода для строки.
Метод get возвращает точку, но вам нужно распечатать объект, чтобы убедиться или просто посмотрите на определение переменной для scene_corners. Используйте это, чтобы попытаться распечатать его:
System.out.println(scene_corners.get(0));
Если это объект Point, то вы можете добавить его в свою точку, взяв каждый компонент Точки и добавив ее к соответствующему компоненту в добавленном к Точка. Предположим, что точки A и B имеют компоненты 0 и 1.
P (A) + P (B) = P (A0 + B0, A1 + B1)
Здесь я предполагаю что scene_corners.get (0) имеет свойства x и y:
line(
img_matches,
new Point(
img_object.cols() + scene_corners.get(0).x,
0 + scene_corners.get(0).y),
new Point(
img_object.cols() + scene_corners.get(1).x,
0 + scene_corners.get(1).y),
Scalar(0, 255, 0),
4
);