v1.4.0¶
v1.4.0은 imlib의 기반을 재구성한 릴리스입니다. find_blobs() / find_markers()는 직접적인 색상 임계값 추적을 위해 재작성되었고, 많은 독립형 이미지 메서드가 블롭 튜플로 통합되었으며, 여러 이미지 메서드의 이름이 변경되었습니다(subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). 또한 sensor.get_fb() / AGC / AEC 토글과 약 60개의 예제 스크립트가 추가되었습니다. 이번 릴리스는 호환성을 많이 깨뜨리므로 아래의 호환성 변경 사항을 읽어보세요.
주요 사항¶
색상 기반 블롭 추적 —
find_blobs()가 색상 임계값을 직접 받아 블롭 튜플의 평면 리스트를 반환합니다.Imlib 정리 —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().센서 —
sensor.get_fb()및 AGC/AEC 활성화 토글을 추가했습니다.약 60개의 예제 스크립트가 추가/확장되었습니다.
호환성 변경: 블롭 API, 제거된 이미지 메서드, 여러 이름 변경 — 호환성 변경 사항을 참조하세요.
새로운 기능¶
센서 —
sensor.get_fb()(마지막 스냅샷 프레임버퍼 가져오기),sensor.set_gain_ctrl(enable)(AGC 토글),sensor.set_exposure_ctrl(enable)(AEC 토글)가 추가되었습니다.이미지 — 이미지 서브스크립트(
img[i])가 이제 픽셀 읽기와 쓰기를 모두 지원합니다(그레이스케일 / RGB565 / JPEG). 인플레이스image.compress()와 JPEG 함수의quality=키워드를 추가했습니다.find_blobs()/find_markers()/find_features()는 이제 아무것도 찾지 못하면 리스트가 아닌 값 대신 빈(반복 가능한) 리스트를 반환합니다.약 60개의 예제 스크립트(보드 제어, 이미지 필터, 색상 추적, 얼굴 / 눈 / 특징 검출, WiFi 실드)와 두 번째 홍채 검출 예제를 추가했습니다.
기타 변경 사항 및 개선¶
image.histeq()는 이제 그레이스케일뿐만 아니라 RGB565 이미지에서도 작동합니다.
버그 수정¶
부팅 시
pyb.DAC를 초기화하여 DAC가 작동하도록 했고(#121), 깨진image.dilate(), WINCclient.send()의 0바이트 손상, 블롭 병합 재반복, 첫 사용 후 파일 시스템을 망가뜨리던 파일 버퍼 재초기화 버그, 서모파일To_min/To_max계산(#113)을 수정했으며, 업스트림 MicroPython HAL I2C/DMA 패치를 적용했습니다.
하드웨어 및 보드 지원¶
WiFi 실드 — WINC1500이 Rev-B 보드 파일로 업데이트되었습니다.
pyb.DAC— DAC 주변장치가 활성화되었습니다.
호환성 깨짐 API 변경¶
v1.3.0과 v1.4.0 사이의 사용자에게 보이는 API 변경 사항. 범위: modules/의 Python C 모듈 및 scripts/libraries/의 Python 라이브러리.
각 변경 사항에는 영향도가 태그되어 있습니다:
major — 해당 기능을 사용한 대부분의 스크립트에 영향을 줍니다. 코드를 포팅해야 합니다.
minor — 좁은 범위의 API로, 이를 사용한 스크립트에만 영향을 줍니다.
변경 사항은 그 순서대로 영향도별로 그룹화되어 있습니다. 코드만 포팅하고 싶다면 끝부분의 마이그레이션 체크리스트로 이동하세요. 각 커밋 해시는 GitHub의 해당 diff로 연결됩니다.
find_blobs() / find_markers() 재작성 (major)¶
image.find_blobs() / find_markers()는 색상 기반 추적을 위해 재작성되었습니다. 이제 사전 세그멘테이션된 이미지를 다루는 대신 색상 임계값(및 선택적 필터 함수)을 직접 전달하며, 결과는 색상별 중첩 트리가 아닌 (색상 코드 필드를 가진) 10개 요소 블롭 튜플의 단일 평면 리스트입니다. 색상 임계값을 전달하고 평면 리스트를 반복하도록 색상 추적 스크립트를 수정하세요.
독립형 이미지 메서드 제거 (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees(), image.pixels()가 제거되었습니다. 중심점 / 방향 / 픽셀 개수 데이터는 이제 find_blobs()가 반환하는 블롭 튜플의 필드로 제공됩니다.
커밋: 9e5d379c1
Imlib 메서드 이름 변경 (major)¶
여러 이미지 메서드의 이름이 변경/재작업되었습니다: image.subimg() → image.copy(), image.blit() → image.replace(), 그리고 image.blend()는 다른 두 이미지 연산과 일치하도록 변경되었습니다. image.scale() / scaled() / rainbow() 메서드는 제거되었습니다(rainbow는 FIR 모듈로 이동). 호출을 새 이름으로 업데이트하세요.
커밋: b534dc6ff
find_eyes()가 find_eye()로 이름 변경 (minor)¶
image.find_eyes()가 image.find_eye()로 이름이 변경되었으며, 이제 이전의 눈 튜플 대신 2-튜플 홍채 (x, y)를 반환합니다. 호출 이름을 변경하고 반환값 처리를 업데이트하세요.
커밋: 7a01a9bed
image.compress()가 compressed()로 이름 변경 (minor)¶
image.compress()(새 JPEG 이미지를 반환하던)가 image.compressed()로 이름이 변경되었습니다. 새로운 image.compress()는 대신 이미지를 인플레이스로 압축하고 None을 반환합니다. image.save() 역시 quality= 키워드가 추가되었으며 이제 True 대신 None을 반환합니다. (반환된 이미지를 기대하던) img.compress(q)를 img.compressed(quality=q)로 마이그레이션하세요.
커밋: 367e5fdd3
마이그레이션 체크리스트¶
v1.4.0으로 깔끔하게 포팅하려면 일반적으로 다음 작업이 필요합니다:
find_blobs()/find_markers()에 색상 임계값을 전달하고 평면 블롭 튜플 리스트를 반복하도록 색상 추적 코드를 수정하세요(find_blobs 재작성).제거된 독립형 메서드 대신 블롭 튜플에서 중심점 / 방향 / 픽셀 데이터를 읽으세요(제거된 이미지 메서드).
subimg→copy,blit→replace로 이름을 변경하고,blend()호출을 고치고,scale/scaled/rainbow를 교체하세요(imlib 이름 변경).find_eyes()→find_eye()(find_eye 이름 변경) 및compress()→compressed()(compress 이름 변경)로 이름이 변경되었습니다.
다른 모든 스크립트는 변경 없이 실행됩니다.