!pip install folium requests
Requirement already satisfied: folium in c:\users\colab\anaconda3\lib\site-packages (0.19.5) Requirement already satisfied: requests in c:\users\colab\anaconda3\lib\site-packages (2.31.0) Requirement already satisfied: branca>=0.6.0 in c:\users\colab\anaconda3\lib\site-packages (from folium) (0.8.1) Requirement already satisfied: jinja2>=2.9 in c:\users\colab\anaconda3\lib\site-packages (from folium) (3.1.2) Requirement already satisfied: numpy in c:\users\colab\anaconda3\lib\site-packages (from folium) (1.24.3) Requirement already satisfied: xyzservices in c:\users\colab\anaconda3\lib\site-packages (from folium) (2022.9.0) Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\colab\anaconda3\lib\site-packages (from requests) (2.0.4) Requirement already satisfied: idna<4,>=2.5 in c:\users\colab\anaconda3\lib\site-packages (from requests) (3.4) Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\colab\anaconda3\lib\site-packages (from requests) (1.26.16) Requirement already satisfied: certifi>=2017.4.17 in c:\users\colab\anaconda3\lib\site-packages (from requests) (2023.7.22) Requirement already satisfied: MarkupSafe>=2.0 in c:\users\colab\anaconda3\lib\site-packages (from jinja2>=2.9->folium) (2.1.1)
import folium
import random
from IPython.display import display
# 날씨 데이터를 표시할 도시 목록
cities = [
{"name": "서울", "lat": 37.5665, "lon": 126.9780},
{"name": "부산", "lat": 35.1796, "lon": 129.0756},
{"name": "대구", "lat": 35.8714, "lon": 128.6014},
{"name": "인천", "lat": 37.4563, "lon": 126.7052},
{"name": "광주", "lat": 35.1595, "lon": 126.8526},
{"name": "대전", "lat": 36.3504, "lon": 127.3845},
{"name": "울산", "lat": 35.5384, "lon": 129.3114},
{"name": "세종", "lat": 36.4800, "lon": 127.2890},
{"name": "제주", "lat": 33.4996, "lon": 126.5312},
]
# 날씨 상태 목록
weather_conditions = ["맑음", "흐림", "비", "눈", "안개"]
# 지도 생성
m = folium.Map(location=[36.5, 127.5], zoom_start=7)
# 각 도시의 가상 날씨 데이터 생성 및 마커 추가
for city in cities:
# 가상의 온도 (10°C ~ 30°C)
temp = round(random.uniform(10, 30), 1)
# 무작위 날씨 상태 선택
weather = random.choice(weather_conditions)
# 날씨에 따른 아이콘 선택
if weather == "맑음":
icon = "sun"
elif weather == "흐림":
icon = "cloud"
elif weather == "비":
icon = "rain"
elif weather == "눈":
icon = "snow"
else:
icon = "fog"
# 마커 및 팝업 생성
folium.Marker(
location=[city['lat'], city['lon']],
popup=f"{city['name']}: {temp}°C, {weather}",
tooltip=city['name'],
icon=folium.Icon(color="red", icon=icon)
).add_to(m)
# 지도 표시
display(m)
OpenCV:
opencv-python-headless:
imshow
)이 제외된 OpenCV 패키지입니다.pillow:
numpy:
matplotlib:
!pip install opencv-python-headless pillow numpy matplotlib
Requirement already satisfied: opencv-python-headless in c:\users\colab\anaconda3\lib\site-packages (4.11.0.86) Requirement already satisfied: pillow in c:\users\colab\anaconda3\lib\site-packages (9.4.0) Requirement already satisfied: numpy in c:\users\colab\anaconda3\lib\site-packages (1.24.3) Requirement already satisfied: matplotlib in c:\users\colab\anaconda3\lib\site-packages (3.7.2) Requirement already satisfied: contourpy>=1.0.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (1.0.5) Requirement already satisfied: cycler>=0.10 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (0.11.0) Requirement already satisfied: fonttools>=4.22.0 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (4.25.0) Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (1.4.4) Requirement already satisfied: packaging>=20.0 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (23.1) Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (3.0.9) Requirement already satisfied: python-dateutil>=2.7 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib) (2.8.2) Requirement already satisfied: six>=1.5 in c:\users\colab\anaconda3\lib\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
import urllib.request
# 이미지 다운로드 함수
def download_image(url, filename):
urllib.request.urlretrieve(url, filename)
# 이미지 URL (공개 도메인 이미지)
image_url = "https://upload.wikimedia.org/wikipedia/commons/3/3c/Giant_Panda_2004-03-2.jpg"
image_filename = "panda.jpg"
# 이미지 다운로드
download_image(image_url, image_filename)
# 이미지 로드
image = cv2.imread(image_filename)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 1. 이미지 필터 적용 (예: 가우시안 블러)
blurred = cv2.GaussianBlur(image_rgb, (15, 15), 0)
# 2. 엣지 감지
edges = cv2.Canny(image_rgb, 100, 200)
# 3. 객체 감지 (여기서는 얼굴 감지를 예로 들겠습니다)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 결과 이미지 생성
result = image_rgb.copy()
for (x, y, w, h) in faces:
cv2.rectangle(result, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Pillow를 사용하여 결과 표시
pil_image = Image.fromarray(result)
draw = ImageDraw.Draw(pil_image)
font = ImageFont.load_default()
draw.text((10, 10), "Detected Objects: " + str(len(faces)), font=font, fill=(255, 255, 255))
# 결과 표시
plt.figure(figsize=(20, 10))
plt.subplot(2, 2, 1)
plt.title("Original Image")
plt.imshow(image_rgb)
plt.axis('off')
plt.subplot(2, 2, 2)
plt.title("Blurred Image")
plt.imshow(blurred)
plt.axis('off')
plt.subplot(2, 2, 3)
plt.title("Edge Detection")
plt.imshow(edges, cmap='gray')
plt.axis('off')
plt.subplot(2, 2, 4)
plt.title("Object Detection")
plt.imshow(pil_image)
plt.axis('off')
plt.tight_layout()
plt.show()
가우시안 블러 (Gaussian Blur)
엣지 감지 (Edge Detection)
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
import urllib.request
# 이미지 다운로드 함수
def download_image(url, filename):
urllib.request.urlretrieve(url, filename)
# 이미지 URL (공개 도메인 이미지)
image_url = "https://upload.wikimedia.org/wikipedia/commons/3/37/Dagestani_man_and_woman.jpg"
image_filename = "people.jpg"
# 이미지 다운로드
download_image(image_url, image_filename)
# 이미지 로드
image = cv2.imread(image_filename)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 1. 이미지 필터 적용 (예: 가우시안 블러)
blurred = cv2.GaussianBlur(image_rgb, (15, 15), 0)
# 2. 엣지 감지
edges = cv2.Canny(image_rgb, 100, 200)
# 3. 얼굴 감지
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 결과 이미지 생성
result = image_rgb.copy()
for (x, y, w, h) in faces:
cv2.rectangle(result, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Pillow를 사용하여 결과 표시
pil_image = Image.fromarray(result)
draw = ImageDraw.Draw(pil_image)
font = ImageFont.load_default()
draw.text((10, 10), f"Detected Faces: {len(faces)}", font=font, fill=(255, 255, 255))
# 결과 표시
plt.figure(figsize=(20, 15))
plt.subplot(2, 2, 1)
plt.title("Original Image")
plt.imshow(image_rgb)
plt.axis('off')
plt.subplot(2, 2, 2)
plt.title("Blurred Image")
plt.imshow(blurred)
plt.axis('off')
plt.subplot(2, 2, 3)
plt.title("Edge Detection")
plt.imshow(edges, cmap='gray')
plt.axis('off')
plt.subplot(2, 2, 4)
plt.title("Face Detection")
plt.imshow(pil_image)
plt.axis('off')
plt.tight_layout()
plt.show()
남자의 얼굴이 인식되지 않은 주요 원인
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
import urllib.request
def download_image(url, filename):
urllib.request.urlretrieve(url, filename)
image_url = "https://upload.wikimedia.org/wikipedia/commons/3/37/Dagestani_man_and_woman.jpg"
image_filename = "people.jpg"
download_image(image_url, image_filename)
image = cv2.imread(image_filename)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 이미지 전처리: 대비 향상
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
gray = cv2.cvtColor(image_rgb, cv2.COLOR_RGB2GRAY)
gray = clahe.apply(gray)
blurred = cv2.GaussianBlur(image_rgb, (15, 15), 0)
edges = cv2.Canny(image_rgb, 100, 200)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
result = image_rgb.copy()
for (x, y, w, h) in faces:
cv2.rectangle(result, (x, y), (x+w, y+h), (255, 0, 0), 2)
pil_image = Image.fromarray(result)
draw = ImageDraw.Draw(pil_image)
font = ImageFont.load_default()
draw.text((10, 10), f"Detected Faces: {len(faces)}", font=font, fill=(255, 255, 255))
plt.figure(figsize=(20, 15))
plt.subplot(2, 2, 1)
plt.title("Original Image")
plt.imshow(image_rgb)
plt.axis('off')
plt.subplot(2, 2, 2)
plt.title("Blurred Image")
plt.imshow(blurred)
plt.axis('off')
plt.subplot(2, 2, 3)
plt.title("Edge Detection")
plt.imshow(edges, cmap='gray')
plt.axis('off')
plt.subplot(2, 2, 4)
plt.title("Face Detection")
plt.imshow(pil_image)
plt.axis('off')
plt.tight_layout()
plt.show()
import networkx as nx
import matplotlib.pyplot as plt
# 빈 그래프 생성
G = nx.Graph()
# 노드 추가
G.add_node("Alice")
G.add_node("Bob")
G.add_node("Charlie")
G.add_node("David")
# 엣지(연결) 추가
G.add_edges_from([("Alice", "Bob"), ("Alice", "Charlie"), ("Bob", "Charlie"), ("Charlie", "David")])
# 그래프 시각화
plt.figure(figsize=(8, 6))
nx.draw(G, with_labels=True, node_color='skyblue', node_size=2000, font_size=15, font_color='black', edge_color='gray')
plt.title("Social Network")
plt.show()
!pip install wordcloud
Requirement already satisfied: wordcloud in c:\users\colab\anaconda3\lib\site-packages (1.9.4) Requirement already satisfied: numpy>=1.6.1 in c:\users\colab\anaconda3\lib\site-packages (from wordcloud) (1.24.3) Requirement already satisfied: pillow in c:\users\colab\anaconda3\lib\site-packages (from wordcloud) (9.4.0) Requirement already satisfied: matplotlib in c:\users\colab\anaconda3\lib\site-packages (from wordcloud) (3.7.2) Requirement already satisfied: contourpy>=1.0.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (1.0.5) Requirement already satisfied: cycler>=0.10 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (0.11.0) Requirement already satisfied: fonttools>=4.22.0 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (4.25.0) Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (1.4.4) Requirement already satisfied: packaging>=20.0 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (23.1) Requirement already satisfied: pyparsing<3.1,>=2.3.1 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (3.0.9) Requirement already satisfied: python-dateutil>=2.7 in c:\users\colab\anaconda3\lib\site-packages (from matplotlib->wordcloud) (2.8.2) Requirement already satisfied: six>=1.5 in c:\users\colab\anaconda3\lib\site-packages (from python-dateutil>=2.7->matplotlib->wordcloud) (1.16.0)
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 텍스트 데이터
text = """
Python is a great programming language for data analysis and visualization.
It is widely used in data science, machine learning, and artificial intelligence.
With Python, you can create complex models, process large datasets, and generate
insights through various libraries like pandas, numpy, and matplotlib.
Python is also known for its simplicity and readability, making it a popular choice
among beginners and experts alike.
"""
# 워드 클라우드 생성
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
# 워드 클라우드 시각화
plt.figure(figsize=(10, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()