나중에 색상 백분율을 기준으로 이미지를 검색 할 수 있도록 이미지의 색상 정보를 추출해야합니다. 이에 대해 ImageMagick을 사용하고 싶습니다. 아이디어가 있으십니까?어떻게하면 이미지의 색상 비율을 쉽게 추출 할 수 있습니까?
3
A
답변
7
ImageMagick에는 이미지의 색상 목록과 빈도수를 반환하는 Histogram
메서드가 있습니다. 그것은 제대로 문서화하고 비열한 인터페이스를 가지고,하지만 난 과거에 사용했습니다, 그래서 제공하기 위해 몇 가지 유용한 코드가 있어요 :
my @hist_data = $image->Histogram;
my @hist_entries;
# Histogram returns data as a single list, but the list is actually groups of
# 5 elements. Turn it into a list of useful hashes.
while (@hist_data) {
my ($r, $g, $b, $a, $count) = splice @hist_data, 0, 5;
push @hist_entries, {
r => $r,
g => $g,
b => $b,
alpha => $a,
count => $count,
};
}
# Sort the colors in decreasing order
@hist_entries = sort { $b->{count} <=> $a->{count} } @hist_entries;
을하지만, 당신이 뭘하려는 건지에 따라 히스토그램은 '외설 t는 풀 컬러 이미지의 경우처럼 유용합니다. 왜냐하면 히스토그램에서 카운트가 분리되어 같은 색상의 약간 다른 색조가 많이 있기 때문입니다. 유용한 사전 처리 단계는 이미지의 복제본에 $image->Segment(colorspace => 'rgb')
을 호출하여 유사한 색상의 영역을 찾고 전체 영역을 평균 색상으로 대체하는 것입니다. 그런 다음 Histogram
으로 전화하면 더 적은 수의 색상으로 더 많은 수를 표시하고 다소 더 대표적인 데이터를 보게됩니다.
+0
+1 유용한 코드 스 니펫 + 설명 – Thariama
이미지 정보? https://metacpan.org/module/Image::Info – squiguy
@ squiuy :이 모듈은 색상 값을 추출하지 않습니다 – Thariama