Мне нужно откалибровать камеру с помощью openCV и Python.
Мой скрипт не может найти точку совпадения. Чтобы упростить задачу, я использую шаблон Чаруко (с полем из белых пикселей) в качестве входного изображения. Несмотря на это, никаких точек не обнаружено. Вот базовый самодостаточный скрипт.
import cv2
import numpy as np
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50)
board = cv2.aruco.CharucoBoard((5, 7),0.01, 0.008, aruco_dict)
board.setLegacyPattern(True)
b = board.generateImage((200,200),marginSize = 20)
#image = cv2.imread('charuco_board.png')
#gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = b
# first detection
aruco_detector = cv2.aruco.ArucoDetector(aruco_dict)
marker_corners, marker_ids, rejected_candidates = aruco_detector.detectMarkers(image)
print(marker_corners)
# refine
if marker_ids is not None:
charuco_params = cv2.aruco.CharucoParameters()
charuco_detector = cv2.aruco.CharucoDetector(board, charuco_params)
charuco_corners, charuco_ids, _ = charuco_detector.detectBoard(gray, marker_corners, marker_ids)
image_copy = image.copy()
image_markers = cv2.aruco.drawDetectedMarkers(image_copy, marker_corners, marker_ids)
image_charuco = cv2.aruco.drawDetectedCornersCharuco(image_markers, charuco_corners, charuco_ids)
cv2.imshow('Detected ChArUco Corners', image_charuco)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("No corners detected.")
< /code>
Редактировать: это швы, которые ARUCO 4x4_50 нарушается.
Рабочий скрипт: < /p>
import cv2
import numpy as np
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_6X6_250)
board = cv2.aruco.CharucoBoard((5, 7),0.01, 0.008, aruco_dict)
board.setLegacyPattern(True)
b = board.generateImage((2000,2000),marginSize = 20)
cv2.imwrite('charuco_board.png',b)
gray = b
# first detection
aruco_detector = cv2.aruco.ArucoDetector(aruco_dict)
marker_corners, marker_ids, rejected_candidates = aruco_detector.detectMarkers(b)
print(marker_corners)
# refine
if marker_ids is not None:
charuco_params = cv2.aruco.CharucoParameters()
charuco_detector = cv2.aruco.CharucoDetector(board, charuco_params)
#charuco_corners, charuco_ids, markerCorners, markerIds = charuco_detector.detectBoard(gray, marker_corners, marker_ids)
charuco_corners, charuco_ids, markerCorners, markerIds = charuco_detector.detectBoard(gray)
image_copy = b.copy()
image_markers = cv2.aruco.drawDetectedMarkers(image_copy, marker_corners, marker_ids)
image_charuco = cv2.aruco.drawDetectedCornersCharuco(image_markers, charuco_corners, charuco_ids)
cv2.imshow('Detected ChArUco Corners', image_charuco)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("No corners detected.")
Подробнее здесь: https://stackoverflow.com/questions/793 ... pencv-4-10
Калибровка камеры Charuco с OpenCV 4.10 ⇐ Python
Программы на Python
1737737751
Anonymous
Мне нужно откалибровать камеру с помощью openCV и Python.
Мой скрипт не может найти точку совпадения. Чтобы упростить задачу, я использую шаблон Чаруко (с полем из белых пикселей) в качестве входного изображения. Несмотря на это, никаких точек не обнаружено. Вот базовый самодостаточный скрипт.
import cv2
import numpy as np
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50)
board = cv2.aruco.CharucoBoard((5, 7),0.01, 0.008, aruco_dict)
board.setLegacyPattern(True)
b = board.generateImage((200,200),marginSize = 20)
#image = cv2.imread('charuco_board.png')
#gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = b
# first detection
aruco_detector = cv2.aruco.ArucoDetector(aruco_dict)
marker_corners, marker_ids, rejected_candidates = aruco_detector.detectMarkers(image)
print(marker_corners)
# refine
if marker_ids is not None:
charuco_params = cv2.aruco.CharucoParameters()
charuco_detector = cv2.aruco.CharucoDetector(board, charuco_params)
charuco_corners, charuco_ids, _ = charuco_detector.detectBoard(gray, marker_corners, marker_ids)
image_copy = image.copy()
image_markers = cv2.aruco.drawDetectedMarkers(image_copy, marker_corners, marker_ids)
image_charuco = cv2.aruco.drawDetectedCornersCharuco(image_markers, charuco_corners, charuco_ids)
cv2.imshow('Detected ChArUco Corners', image_charuco)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("No corners detected.")
< /code>
Редактировать: это швы, которые ARUCO 4x4_50 нарушается.
Рабочий скрипт: < /p>
import cv2
import numpy as np
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_6X6_250)
board = cv2.aruco.CharucoBoard((5, 7),0.01, 0.008, aruco_dict)
board.setLegacyPattern(True)
b = board.generateImage((2000,2000),marginSize = 20)
cv2.imwrite('charuco_board.png',b)
gray = b
# first detection
aruco_detector = cv2.aruco.ArucoDetector(aruco_dict)
marker_corners, marker_ids, rejected_candidates = aruco_detector.detectMarkers(b)
print(marker_corners)
# refine
if marker_ids is not None:
charuco_params = cv2.aruco.CharucoParameters()
charuco_detector = cv2.aruco.CharucoDetector(board, charuco_params)
#charuco_corners, charuco_ids, markerCorners, markerIds = charuco_detector.detectBoard(gray, marker_corners, marker_ids)
charuco_corners, charuco_ids, markerCorners, markerIds = charuco_detector.detectBoard(gray)
image_copy = b.copy()
image_markers = cv2.aruco.drawDetectedMarkers(image_copy, marker_corners, marker_ids)
image_charuco = cv2.aruco.drawDetectedCornersCharuco(image_markers, charuco_corners, charuco_ids)
cv2.imshow('Detected ChArUco Corners', image_charuco)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("No corners detected.")
Подробнее здесь: [url]https://stackoverflow.com/questions/79381818/charuco-camera-calibration-with-opencv-4-10[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия