2013-03-23 6 views
1

PNG 포맷을 사용하여 수백 개의 RGB 이미지를 읽어야합니다. , 단지 하나 개의 색상 값을 읽을 수 있다면 내가 궁금옥타브에서 하나의 RGB 컬러 읽기

A = imread(file); 
A = A(:, :, 1); 

: 난 단지 색상 (빨강, 녹색 또는 파랑 중 하나) 중 하나를해야하고, 지금 내가 이런 일을하고 있어요 더 빨리 읽을 수 있도록. 가능한 빨리이 작업이 필요합니다.

+1

단 하나의 색만 읽을 수는 없지만 옥타브에서는'A = imread (file) (;, :, 1); '구문을 사용하여 추가 행과 더미 변수를 저장할 수 있습니다. – carandraug

답변

0

@ carandraug와 마찬가지로, 옥타브는 이러한 방법을 제공하지 않습니다. 이미 가장 간단한 옵션을 게시했습니다. Octave는 이미지 파일을 읽는 백엔드로 ImageMagick을 사용하고 있습니다. 여기에는 최적화를위한 공간이별로 없습니다.

게다가 대량의 이미지를 읽는 과정의 속도를 실제로 높이려면 대체 방법을 찾아 보거나 직접 구현하는 것이 좋습니다. 시작하기 좋은 곳은 소스 코드 libpng입니다. 또 다른 아이디어는 RGB png를 압축되지 않은 간단한 bmp로 변환하는 것입니다. 이미지를 변환하는 프로세스를 원하는 다른 빠른 프로그램으로 처리하십시오. 예를 들어 bmp를 만듭니다. 램 드라이브 안쪽에 놓고 저수준 명령 (fread)으로 옥타브에서 읽으십시오. 그러한 전략은 어느 정도 최적화 될 수 있습니다. 그러나 우리가 많은 이미지를 말하고 있다면 그만한 가치가 있습니다.

관련 문제