v2.8.0¶
v2.8.0 은 대규모 릴리스입니다. 하드웨어 JPEG 인코더 와 H7 ADC/DAC 를 갖춘 OpenMV Cam H7 (STM32H7)에 대한 지원을 도입하고, 대대적인 image API 개편(그리기 두께/채우기, 수학/이진 연산, 다수의 새로운 필터, Otsu 임계값 처리), MicroPython 스레딩, 그리고 omv 버전 모듈을 제공합니다. Python 인수 파싱 순서가 고정되었고 image.mask_ellipse() 가 제거되었습니다 — 아래의 호환성 변경 사항을 확인하세요.
주요 내용¶
OpenMV Cam H7 — 하드웨어 JPEG 인코더와 H7 ADC / DAC를 갖춘 새로운 STM32H7 보드.
image개편 — 선 두께, 도형 채우기,draw_arrow()/draw_image(), 완전한 수학/이진 연산, 그리고 다수의 새 필터.Otsu 임계값 처리 —
histogram.get_threshold()와Threshold객체.스레딩 — MicroPython
_thread지원.omv모듈 — 버전 / 보드 정보.호환성 변경: Python 위치 인수 순서가 이제 엄격해졌고
image.mask_ellipse()가 제거되었습니다 — 호환성 변경 사항을 참고하십시오.
새로운 기능¶
OpenMV Cam H7 — 하드웨어 JPEG 인코더, H7 ADC, H7 DAC를 갖춘 STM32H7 보드 지원.
그리기 — 선
thickness, 도형fill(사각형 / 원), 텍스트scale/ 자간(kerning),draw_string()의mono_space키워드,image.draw_arrow(), 그리고image.draw_image()(스프라이트 / 마스크 그리기)가 추가되었습니다.수학 연산 —
add(),sub(),mul(),div(),min(),max(),difference(),blend(),replace()(hmirror/vflip/mask포함), 그리고remove_shadows()를 추가했습니다. 기본 연산은 이제 모든 픽셀에 적용되는 스칼라/색상 값을 받습니다.이진 / 형태학 — 새로운 이진 이미지 타입과
binary(); 선 연산과erode()/dilate()가 마스크를 받습니다;open()/close()/top_hat()/black_hat()을 추가했습니다.필터 —
cartoon,flood_fill,bilateral,laplacian,blur/gaussian_blur별칭, 그리고 적응형 히스토그램 평활화(histeq(adaptive=, clip_limit=, mask=))를 추가했습니다.통계 —
get_statistics()/get_histogram()이 색상 임계값 목록과invert를 받습니다; Otsuhistogram.get_threshold()와Threshold객체를 추가했습니다.CMSIS CNN —
cnn.py예제와 함께image.classify_object()를 추가했습니다(v3.0.0의nn모듈로 대체됨).스레딩 — MicroPython
_thread모듈을 활성화했습니다.omv모듈 — 버전 정보(version_string,arch,board_type,board_id)를 추가했고;machineI2C4 버스와 수학 특수 함수(erf,gamma, …)를 활성화했으며; 모터 실드 예제와 다수의 새 예제 스크립트를 추가했습니다.
기타 변경 사항 및 개선¶
H7 센서 외부 클럭이 48 MHz로 낮춰졌습니다(더 나은 이미지 품질, 낮은 FPS); 저/고 JPEG 품질이 이제 보드별로 구성 가능합니다(H7에 맞게 튜닝됨); 보드별
imlib_config.h기능 게이팅을 추가했습니다(모든 이미지 함수는 기본 펌웨어에서 활성화된 상태로 유지); 번들된 MicroPython을 업데이트했습니다.
버그 수정¶
이미징:
파일 확장자 없는
image.save(), OV2640 / OV7725 / OV9650 / MT9V034의gain_db/gain_db_ceiling매핑,sharpen()의 과도한 게인, 형태학적 에지 노이즈, 이미지 연산의 0으로 나누기, 그리고 너무 큰 필터 커널 크기에서의 스택 스매시 충돌(이제 깔끔한 오류)을 수정했습니다.
시스템:
원자적 섹션으로 USB VCP 버퍼를 보호하고(직렬 손상, #313), Windows에서의 USB 연결, SD 카드 실패 시 내부 플래시 파일 시스템 마운트,
cpufreq의set_frequency()PLLP 값, 그리고 부트로더 펌웨어 플래싱 버그를 수정했습니다.
하드웨어 및 보드 지원¶
OpenMV Cam H7 (STM32H7) — 하드웨어 JPEG 인코더와 H7 ADC / DAC를 갖춘 새로운 보드.
machine— I2C4 버스를 활성화했습니다.
호환성에 영향을 주는 API 변경¶
v2.7.0과 v2.8.0 사이의 사용자에게 보이는 API 변경. 범위: modules/의 Python C 모듈과 scripts/libraries/의 Python 라이브러리.
두 호환성 변경 사항은 모두 minor이며 해당 기능을 사용한 스크립트에만 영향을 줍니다. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
Python 위치 인수 순서가 이제 엄격해짐 (minor)¶
Python C 모듈 전반(image / sensor / fir / gif / lcd / mjpeg)의 인수 파싱이 이제 키워드보다 위치 인수를 먼저 읽고 위치 순서를 고정합니다. 그리기 메서드의 새로운 키워드 인수(draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints()가 thickness / fill / scale / size를 얻음)와 결합되어, 매개변수를 위치상 순서를 벗어나 전달했거나 — 새 인수 중 하나 뒤에 위치 color를 전달한 코드는 키워드 인수 또는 문서화된 위치 순서를 사용해야 합니다.
image.mask_ellipse() 제거됨 (minor)¶
image.mask_ellipse()가 제거되었습니다. 이를 호출하던 스크립트는 호출을 제거하거나 명시적인 ROI / 마스크 이미지를 대신 사용해야 합니다.
커밋: d7159fba3
마이그레이션 체크리스트¶
인수를 키워드로(또는 문서화된 위치 순서로) 전달하십시오. 특히 그리기 메서드의 color에 유의하십시오(인수 순서 변경). 그리고 image.mask_ellipse() 호출을 제거하십시오(mask_ellipse 제거). 다른 모든 스크립트는 변경 없이 실행됩니다.