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를 받습니다; Otsu histogram.get_threshold()Threshold 객체를 추가했습니다.

  • CMSIS CNNcnn.py 예제와 함께 image.classify_object()를 추가했습니다(v3.0.0의 nn 모듈로 대체됨).

  • 스레딩 — MicroPython _thread 모듈을 활성화했습니다.

  • omv 모듈 — 버전 정보(version_string, arch, board_type, board_id)를 추가했고; machine I2C4 버스와 수학 특수 함수(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 카드 실패 시 내부 플래시 파일 시스템 마운트, cpufreqset_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를 전달한 코드는 키워드 인수 또는 문서화된 위치 순서를 사용해야 합니다.

커밋: e0e112468, fc74e70c3

image.mask_ellipse() 제거됨 (minor)

image.mask_ellipse()가 제거되었습니다. 이를 호출하던 스크립트는 호출을 제거하거나 명시적인 ROI / 마스크 이미지를 대신 사용해야 합니다.

커밋: d7159fba3

마이그레이션 체크리스트

인수를 키워드로(또는 문서화된 위치 순서로) 전달하십시오. 특히 그리기 메서드의 color에 유의하십시오(인수 순서 변경). 그리고 image.mask_ellipse() 호출을 제거하십시오(mask_ellipse 제거). 다른 모든 스크립트는 변경 없이 실행됩니다.