내 Voi 스쿠터는 어디에 있나요: [9] Python PIL 모듈을 사용하여 맵에서 스쿠터 히트맵 마스킹

이 블로그에서는 previous blog post에서 만든 히트맵에 맵을 통합할 계획입니다. 왜냐하면 히트맵만 있으면 어떤 좌표에 스쿠터가 많은지 알 수 있지만 좌표로 맵을 참조해야 하기 때문입니다. 불편하다. 그래서 히트맵에 있는 정보를 지도에 직접 올려서 정보가 잘 보이도록 하고 싶습니다.

히트맵



겹치는 이미지



지도의 이미지와 히트맵을 겹치기 위해서는 다른 이미지 위에 반투명한 이미지를 얹는 방법을 찾아야 합니다.

먼저 이미지를 투명하게 만들어야 합니다. putalpha(128)를 사용하여 이미지를 반투명하게 만듭니다. 해당 이미지에 알파 또는 투명도 수준 128을 적용하여 작동합니다. 알파 레벨 0은 완전히 투명함을 의미하고 레벨 255는 완전히 불투명함을 의미합니다. 따라서 128은 중간에 있으므로 반투명합니다.

그런 다음 image.paste(another_image)를 사용하여 반투명 이미지를 다른 이미지 위에 올려 보았습니다. 하지만 일어난 일은 이미지 전체가 다른 이미지를 덮어쓴다는 것입니다. 내가 필요한 것은 alpha_composite . 테스트를 위해 나는 sat 위에 반투명 맵을 합성했습니다.

히트맵 범위에 사용한 4개의 좌표를 가져와서 이것을 생성했습니다map_img. 정확히 네 모서리로 스크린샷을 찍습니다.



sat_map

from PIL import Image
map_img = Image.open('img/map.png')
map_img.putalpha(128)
sat_map = Image.open('img/sat_map.png')
sat_map.alpha_composite(map_img)
sat_map.save('img/result.png')



result.png

마스킹



이제 지도에서 스쿠터가 많은 지역을 볼 수 있도록 지도 이미지에서 히트맵 이미지를 마스킹하고 싶습니다. 마지막 예제처럼 알파 컴포지트를 사용하고 싶었지만 마스킹을 사용하는 것이 더 나을 것 같았습니다. 이미지 마스킹은 이미지 C를 가이드라인으로 사용하여 이미지 B에 이미지 A를 배치하는 것입니다. 히트맵을 가이드라인으로 삼아 지도 위에 어두운 이미지를 배치할 계획입니다. 더 많은 스쿠터가 있는 장소는 지도에서 스쿠터가 어디에 있는지 알 수 있도록 더 어두워집니다.

마스킹을 수행하는 기능은 Image.composite() 이며 모든 이미지의 크기가 동일해야 합니다. 그래서 저는 가로 600 세로 600 크기를 모두 사용할 계획입니다. 먼저 전체 흰색의 배경 이미지를 만들고 thumbnail 함수를 사용하여 지도 이미지를 히트맵 크기로 조정한 다음 배경에 붙여넣습니다. 그런 다음 히트맵 이미지를 읽고 크기를 수정한 다음 어떤 이유로 회색조를 의미하는 L 로 변환합니다. 그런 다음 모든 빨간색의 빨간색 이미지를 만들고 모두 함께 합성합니다.

bg_img = Image.new("RGBA", (600, 600), 0)
map_img = Image.open('img/map.png')
map_img.thumbnail((474, 546), Image.ANTIALIAS)
bg_img.paste(map_img, (36, 21))
heatmap_img = Image.open('img/heatmap.png').resize((600, 600)).convert("L")
bk_img = Image.new("RGB", (600, 600), 255).convert("RGBA")
final_img = Image.composite(bk_img, bg_img, heatmap_img)
final_img.save('img/result2.png')



heatmap_img

그 결과 스쿠터가 더 많은 장소에 빨간색 오버레이가 표시되어 스쿠터가 어디에 집중되어 있는지 알 수 있습니다.



무엇 향후 계획



다음 블로그에서는 데이터 수집 프로그램이 이미 한 달 이상 실행되었기 때문에 7월부터 Voi 스쿠터 데이터를 분석할 계획입니다. 흥미로운 데이터가 수집될 것이라고 확신합니다.

좋은 웹페이지 즐겨찾기