이제 디스크에서 이미지를 읽습니다. 이미지는 그레이 스케일 이미지 또는 바이너리 이미지 일 수 있습니다. 그러나 나는 이미지의 헤더 파일에서 알 수 없다. 지금 내가하고있는 일은 고유 한 픽셀 수를 알려주는 것입니다. 고유 픽셀 수가 2보다 크면 이미지는 회색조입니다. 그렇지 않으면 흑백 이미지입니다. 다음 기능을 사용하여 작업을 수행합니다.배열 또는 이미지의 고유 값 번호
bool is_binary_image( std::vector<unsigned char> &memory)
{
std::set<unsigned char> myset;
for( std::vector<unsigned char>::iterator it = memory.begin();
it!= memory.end();
it++)
{
myset.insert(*it);
if (myset.size()>2)
return false;
}
return true;
}
이 기능은 후보 이미지가 회색조 이미지 인 경우 잘 수행 할 수 있습니다. 그러나, 후보 이미지가 이진이면, 그 함수는 시간 소모적이다. 기능 개선에 대한 아이디어가 있습니까?
세 개의 별개 값을 찾을 때까지 반복합니다. – jrok
@jrok, 그가하는 일이 아닌가요? –
이진 이미지의 값을 항상 동일하게 사용할 수 있습니까? 예 : 0xff와 0x00? – ogni42