v1.2.0¶
v1.2.0은 클래식 OpenMV 이미징 API의 대부분을 구축하는 기반이 되는 매우 큰 릴리스입니다. 그리기 메서드, 이진화 / 모폴로지 연산, 키포인트 디스크립터(FAST / FREAK / LBP), 색상 변환 및 image.statistics, BMP / PPM / JPEG 파일 I/O, lcd, mjpeg, gif, mlx 열화상 모듈, OV7725 카메라, 그리고 다수의 sensor 제어 기능이 추가되었습니다. 일부 핵심 sensor 동작이 변경되었으므로 아래의 호환성 변경 사항을 읽어보세요.
주요 사항¶
그리기 API —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().이진화 / 모폴로지 —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().키포인트 —
match_descriptor()/save_descriptor()/load_descriptor()를 갖춘 FAST / FREAK / LBP 디스크립터.OV7725 카메라 지원,
image.statistics, BMP/PPM/JPEG 파일 I/O.호환성 변경:
sensor.reset(),sensor.snapshot(),sensor.set_pixformat()의 동작이 변경되었습니다 — 호환성 변경 사항을 참조하세요.
새로운 기능¶
그리기 — 키워드 인자(color, thickness 등)를 갖춘
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()가 추가되었습니다.이진화 / 모폴로지 —
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees(),width()/height()/format()가 추가되었습니다.키포인트 / 디스크립터 —
find_keypoints()를 통한 FAST 키포인트 추출, FREAK / LBP를 위한 통합된match_descriptor()및save_descriptor()/load_descriptor(), 그리고 측면 얼굴 Haar/LBP 캐스케이드가 추가되었습니다.색상 / 통계 —
image.statistics및 색상 변환 함수(rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).파일 I/O — BMP / PPM(P2/P3/P5/P6) / JPEG 로드 및 저장(그레이스케일 JPEG 및 4:2:0 / 4:2:2 크로마 서브샘플링 포함).
모듈 — 새로운
lcd(LCD 실드),mjpeg(영상 녹화), 색상gif(Gif.loop()포함),mlx열화상 카메라 모듈이 추가되었으며, 각각 예제 스크립트를 함께 제공합니다.센서 —
sensor.get_id()(+ OV9650/OV2640/OV7725 PID 상수),sensor.set_special_effect()(SDE_* 상수),sensor.set_image_filter()(FILTER_BW / FILTER_SKIN),HQVGA프레임 크기,image.set_pixel(x, y, …)가 추가되었습니다.WiFi — ATWINC1500 WiFi 드라이버와 OpenMV 1/2 BSP 기반 작업, 그리고 BLE 예제가 추가되었습니다.
기타 변경 사항 및 개선¶
프레임 버퍼는 이제 OpenMV IDE로 스트리밍되기 전에 JPEG로 압축됩니다(대역폭 절감). JPEG 압축은 인플레이스로 수행됩니다. OV7725 가로/세로 줌으로 임의의 스케일링이 가능합니다. QVGA에서 실행되는 개선된(더 빠른) Haar 얼굴 검출이 추가되었습니다.
버그 수정¶
이미징:
적분 이미지 계산,
median()필터 손상, 중심점 계산, RGB 입력에 대한 RGB 피부색 / 흑백 필터를 수정했으며, 그레이스케일 BMP/PPM 읽기/쓰기 속도를 개선했습니다.
센서 및 시스템:
pyb.Servo타이머(이제 Servo가 작동함), HQVGA 해상도, SD 카드 초기화 안정성, 소프트 리셋 후 스토리지 재초기화, 스크립트가 없을 때 REPL 재실행을 수정했습니다.
하드웨어 및 보드 지원¶
OV7725 카메라 센서.
LCD 실드(
lcd모듈),mlx열화상 카메라, ATWINC1500 WiFi 기반 작업.
호환성 깨짐 API 변경¶
v1.1.0과 v1.2.0 사이의 사용자에게 보이는 API 변경 사항. 범위: modules/의 Python C 모듈 및 scripts/libraries/의 Python 라이브러리.
세 가지 호환성 변경 사항은 모두 핵심 sensor 함수의 동작 변경입니다(동일한 API, 다른 동작) — 영향을 받는 스크립트를 다시 확인하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다. (이 릴리스의 대부분은 v1.1→v1.2 범위 내에서 구축된 새로운 API이므로 호환성을 깨뜨리지 않는 추가 사항입니다.)
sensor.reset()가 더 이상 기본 설정을 적용하지 않음 (동작)¶
sensor.reset()는 더 이상 내장 기본 설정(pixformat / framesize / framerate / gain / contrast / brightness / saturation)을 적용하지 않습니다. reset()이 사용 가능한 기본값을 남겨 두는 데 의존하던 스크립트는 이제 reset() 이후 sensor.set_pixformat()과 sensor.set_framesize()(및 기타 설정)을 명시적으로 호출해야 합니다.
커밋: d1e782df3
sensor.snapshot()가 타임아웃 시 예외 발생 (동작)¶
sensor.snapshot()는 이제 센서가 타임아웃될 때 무한정 멈추는 대신 RuntimeError("Sensor Timeout!!")를 발생시킵니다. 타임아웃을 허용해야 한다면 snapshot()을 try / except RuntimeError로 감싸세요.
커밋: e3f41d674
sensor.set_pixformat()가 지원되지 않는 포맷에 대해 예외 발생 (동작)¶
sensor.set_pixformat()는 이제 지원되지 않는 픽셀 포맷이 주어지면 False를 반환하는 대신 예외를 발생시킵니다. False 반환값을 확인하던 코드는 대신 예외를 처리해야 합니다.
커밋: e0c5822c2
마이그레이션 체크리스트¶
v1.2.0으로 깔끔하게 포팅하려면 일반적으로 다음 작업이 필요합니다:
sensor.reset()이후에sensor.set_pixformat()/sensor.set_framesize()를 명시적으로 설정하세요(reset 변경 사항).센서 타임아웃을 허용해야 한다면
sensor.snapshot()을try/except RuntimeError로 감싸세요(snapshot 변경 사항).False를 확인하는 대신sensor.set_pixformat()의 예외를 처리하세요(set_pixformat 변경 사항).
다른 모든 스크립트는 변경 없이 실행됩니다.