저는이 질문을하기 전에 파이썬 초보자이며 여기에서 답을 찾기 위해 열심히 노력했습니다. 두 장의 사진이 다른 디자인으로되어 있으며, 해밍 거리를 비교하고 싶습니다. 하지만 같은 폴더에있는 같은 디자인 파일의 이미지를 비교하고 싶지는 않습니다. Imagehash라는 라이브러리를 기반으로 비교를합니다. 이미지의 다른 조합을 비교 한 후에 가장 높은 해밍 거리 점수를 유지하고 싶습니다. 폴더 테이블에서다른 폴더에있는 요소의 조합을 가져 오지만 같은 폴더에있는 요소를 결합하지 않습니다, 파이썬
이 세 가지 이미지가있다 : table_1.jpg, table_2.jpg, 폴더 의자 두 이미지에서 table_3.jpg : chair_1.jpg, chair_2.jpg
나 간단한 예제와 함께 내가 원하는 것을 설명하게내가 원한다면 Image.open() 및 imagehash.phash 함수를 사용하여 나중에 할 수있는 파일의 파일 경로입니다.
(table_1.jpg, chair_1.jpg), (table_1.jpg, chair_2.jpg), (table_2.jpg, chair_1.jpg), (table_2.jpg, chair_2.jpg), (table_3.jpg, chair_1.jpg), (table_3.jpg, chair_2.jpg)
가 그럼 난 "_"후 분리해야하고, GROUPBY을 사용하고 itemgetter, 나는 당신이 원하는 튜플 계산 itertools.product
필요
네,하지만 제 질문은 같은 폴더에있는 파일의 조합을 취하지 못하게하는 방법입니다. –
'product'는 같은 목록의 요소를 섞어 쓰지 않습니다. –
x = y 인 경우 x, y 조합 (df [ 'hash_1'], 2)의 경우 = ((x, y, (64 - (x - y))/64) series = (group (key) = itemgetter (0)) 사실, 먼저 phash를 계산 한 다음 파일 이름이 아닌 함수에서 사용합니다. 어떻게 이미지 이름을 hash –