2017-10-05 14 views
0

MicroPython을 지원하는 마이크로 컨트롤러 용 이미지 처리 루틴을 작성하고 있습니다. 나쁜 소식은 0.5MB의 RAM 만 있다는 것입니다. 즉, 256x256과 같이 상대적으로 큰 이미지/행렬을 사용하려는 경우 더 작은 행렬 (예 : 32x32)의 모음으로 처리하고 해당 행렬에 대한 연산을 수행해야합니다. 그것의 (32x32) 서브 매트릭스로부터 orignal (256x256) 행렬의 최종 출력을 재구성한다는 사실을 떠나서, 디스크 (이 경우에는 SD 카드)에서로드/저장하는 방법에 초점을 맞추고 싶습니다. 이 작은 행렬의 큰 이미지에서.매트릭스 부분을 RAM에로드하십시오.

여기에 내 소개가 있습니다. 디스크에 256x256 크기의 디스크가 있다고 가정하면 (예 : 회선) 일부 이미지를 저장하는 가장 편리한 방법은 무엇입니까? 32x32 이미지 패치로? MicroPython에서 pickle 모듈을 구현 한 것을 보았습니다. 제 문제에 대한 좋은 생각입니까?

+1

플래시 메모리주기가 제한되어 있으므로 플래시 카드를 작업 공간으로 광범위하게 사용하지 않습니다. –

+0

좋은 지적입니다. 감사! – karl71

답변

0

죄송하지만 질문에 대한 답변이 포함되어 있습니다. 32x32 타일로 작업해야하는 경우 가장 큰 형식은 큰 이미지를 일련의 타일로 표현하는 것입니다 (예 : 타일을 읽지 만 큰 256x256 이미지가 아닌 경우). 32x32 타일은 물론 더 효율적 일지 몰라도, 그것도 로켓 과학이 아니며 MicroPython에서 코드 작성하는 것은 그리 쉽지 않습니다.

이미지의 정확한 형식을 설명하지는 않지만 pickle 모듈을 사용하지는 않지만 이미지를 원시 바이트로 저장하고 array.array() 객체에 이미지를 저장합니다 (inplace .readinto() 사용). 조작).