'opencv'에 해당되는 글 5건

  1. 2025.09.20 harris.py
  2. 2025.09.20 laplacian.py
  3. 2025.09.19 sobel.py
  4. 2025.09.19 라즈베리파이 5에서 tensorflow가 설치된 opencv 개발환경 설정
  5. 2025.09.17 아나콘다 설치하기

harris.py

라즈베리파이 2025. 9. 20. 16:10
반응형
import cv2
import numpy as np
import matplotlib.pyplot as plt
import os

# 현재 스크립트 파일의 디렉토리 기준으로 이미지 경로 설정
script_dir = os.path.dirname(os.path.abspath(__file__))
image_path = os.path.join(script_dir, 'image.jpg')

# 이미지 불러오기 (컬러)
image_color = cv2.imread(image_path, cv2.IMREAD_COLOR)
image_gray = cv2.cvtColor(image_color, cv2.COLOR_BGR2GRAY)  # 그레이스케일 변환

if image_color is None:
    print("Failed to load image.")
    exit()

# Harris 코너 검출
gray_float = np.float32(image_gray)
harris_corners = cv2.cornerHarris(gray_float, blockSize=2, ksize=3, k=0.04)

# 코너 강도를 정규화하여 더 명확하게 보기
harris_corners_normalized = cv2.normalize(harris_corners, None, 0, 255, cv2.NORM_MINMAX)
harris_corners_normalized = harris_corners_normalized.astype(np.uint8)

# 기존 방식으로 Harris 코너를 빨간색으로 표시
image_with_red_corners = image_color.copy()
image_with_red_corners[harris_corners > 0.01 * harris_corners.max()] = [0, 0, 255]

# 코너가 강한 부분을 표시 (채도가 낮은 색)
image_with_low_saturation_corners = image_color.copy()
image_with_low_saturation_corners[harris_corners_normalized > 100] = [192, 192, 192]

# 세 이미지를 나란히 배치하며 구분선 추가
height, width = image_color.shape[:2]
combined_image = np.zeros((height, width * 3 + 20, 3), dtype=np.uint8)

# 첫 번째: 원본 이미지
combined_image[:, :width, :] = image_color
# 두 번째: 기존 빨간색 코너 표시
combined_image[:, width+10:width*2+10, :] = image_with_red_corners
# 세 번째: 낮은 채도의 코너 검출 이미지
combined_image[:, width*2+20:, :] = image_with_low_saturation_corners
# 구분선: 흰색
combined_image[:, width:width+10, :] = 255
combined_image[:, width*2+10:width*2+20, :] = 255

# 결과 시각화
plt.figure(figsize=(20, 8))
plt.imshow(cv2.cvtColor(combined_image, cv2.COLOR_BGR2RGB))
plt.title('Original, Red Corners, and Low Saturation Corners')
plt.axis('off')
plt.tight_layout()
plt.show()

반응형

'라즈베리파이' 카테고리의 다른 글

laplacian.py  (0) 2025.09.20
mediapip.py  (0) 2025.09.19
point_mediapipe.py  (0) 2025.09.19
sobel.py  (0) 2025.09.19
라즈베리파이 5에서 tensorflow가 설치된 opencv 개발환경 설정  (0) 2025.09.19
Posted by 세상을 살아가는 사람
,

laplacian.py

라즈베리파이 2025. 9. 20. 15:57
반응형
import cv2
import numpy as np
import matplotlib.pyplot as plt
import os

# 현재 스크립트 파일의 디렉토리 기준으로 이미지 경로 설정
script_dir = os.path.dirname(os.path.abspath(__file__))
image_path = os.path.join(script_dir, 'image.jpg')

# 이미지 불러오기 (컬러)
image_color = cv2.imread(image_path, cv2.IMREAD_COLOR)
image_gray = cv2.cvtColor(image_color, cv2.COLOR_BGR2GRAY)  # 그레이스케일 변환

if image_color is None:
    print("Failed to load image.")
    exit()

# Laplacian 필터 적용
laplacian = cv2.Laplacian(image_gray, cv2.CV_64F, ksize=3)

# 절대값을 취해 에지 강조
laplacian_abs = np.abs(laplacian)

# 값 정규화 (0~255 범위로 변환)
laplacian_enhanced = cv2.normalize(laplacian_abs, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)

# 결과 시각화
plt.figure(figsize=(15, 8))

# 원본 컬러 이미지
plt.subplot(1, 2, 1)
plt.imshow(cv2.cvtColor(image_color, cv2.COLOR_BGR2RGB))
plt.title('Original Image (Color)')
plt.axis('off')

# 정규화된 Laplacian 필터 결과 (Enhanced)
plt.subplot(1, 2, 2)
plt.imshow(laplacian_enhanced, cmap='gray')
plt.title('Laplacian Filter (Enhanced Visibility)')
plt.axis('off')

plt.tight_layout()
plt.show()

반응형

'라즈베리파이' 카테고리의 다른 글

harris.py  (0) 2025.09.20
mediapip.py  (0) 2025.09.19
point_mediapipe.py  (0) 2025.09.19
sobel.py  (0) 2025.09.19
라즈베리파이 5에서 tensorflow가 설치된 opencv 개발환경 설정  (0) 2025.09.19
Posted by 세상을 살아가는 사람
,

sobel.py

라즈베리파이 2025. 9. 19. 14:50
반응형

위에서 설정한 환경에서 다음 python 에제 프로그램을 구동한다.

import cv2
import numpy as np
import matplotlib.pyplot as plt
import os

dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(dir, 'image.jpg')


# 이미지 불러오기
image_color = cv2.imread(file_path, cv2.IMREAD_COLOR)	# 컬러 표시용
image = cv2.imread(file_path, cv2.IMREAD_GRAYSCALE)	# 크레이스케일 연산용(에지 검출은 보통 단일 채널에서 수행)

# Sobel 필터 적용
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3)  # 수평 방향 -> 수평 에지가 밝게 나타남
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3)  # 수직 방향 -> 수직 에지가 밝게 나타남

# 기울기 크기 계산
sobel_magnitude = cv2.magnitude(sobel_x, sobel_y)    # 에지의 세기


# 결과 시각화
plt.figure(figsize=(15, 8))

# 원본 이미지
plt.subplot(1, 4, 1)
plt.imshow(cv2.cvtColor(image_color, cv2.COLOR_BGR2RGB))
plt.title('Original Image (Color)')
plt.axis('off')

# Sobel X
plt.subplot(1, 4, 2)
plt.imshow(sobel_x, cmap='gray')
plt.title('Sobel X')
plt.axis('off')

# Sobel Y
plt.subplot(1, 4, 3)
plt.imshow(sobel_y, cmap='gray')
plt.title('Sobel Y')
plt.axis('off')

# Gradient Magnitude
plt.subplot(1, 4, 4)
plt.imshow(sobel_magnitude, cmap='gray')
plt.title('Gradient Magnitude')
plt.axis('off')

plt.tight_layout()
plt.show()

이것을 위 가상환경에서 실행하기 위해서는 matplotlib가 추가로 설치되어야 한다. 따라서 다음과 같은 절차를 사용하여 matplotlib를 설치한다.

$ pip install matplotlib
# 설치 확인
$ python -c "import matplotlib; print(matplotlib.__version__)"

[sobel.py 실행]

$ python sobel.py

한 장의 이미지를 불러와서 Sobel 미분으로 수평/수직 에지를 구한 뒤, 두 방향을 합친 "기울기 크기(gradient magnitude)"까지 4분할 화면으로 시각화하는 간단, 정석 파이프라인이다.

스크립트와 같은 폴더의 image.jpg를 읽어 오고, Sobel X(가로 변화), Sobel Y(세로 변화), √(X²+Y²) 크기를 계산해 한 화면에 보여준다.

  - Sobel X : 세로 경계가 강조됨

  - Sobel Y : 가로 경계가 강조됨

  - Magnitude : 방향과 관계없이 "강한 변화"를 한 장에 모아 보여준다. (후 처리나 에지 기반 특징 추출의 입력으로 쓰기 좋음)

반응형

'라즈베리파이' 카테고리의 다른 글

harris.py  (0) 2025.09.20
laplacian.py  (0) 2025.09.20
mediapip.py  (0) 2025.09.19
point_mediapipe.py  (0) 2025.09.19
라즈베리파이 5에서 tensorflow가 설치된 opencv 개발환경 설정  (0) 2025.09.19
Posted by 세상을 살아가는 사람
,
반응형

라즈베리파이에 라즈비안 OS를 설치하면 기본적으로 최신의 python이 설치되어 있다. 여기서는 v 3.11.2가 설치되어 있는 것을 다음과 같이 확인할 수 있다.

 

tensorflow를 설치하기 위해서는 python 버전이 3.10.x 버전을 설치하여야 한다. 따라서 하나의 라즈베리파이에 여러 개의 python 버전이 동작해야 하고, 내가 필요한 python v3.10.x를 사용하기 위해서는 가상환경을 사용하는 것이 좋다.

그래서 아나콘다(Anaconda)를 설치하려고 하였으나 라즈베리파이 5에서는 Anaconda 대체로 Miniforge를 설치하여야 한다고 한다. 따라서 Miniforge를 설치하였다.

1. 시스템 업그레이드

$ sudo apt update && sudo apt upgrade -y     // 우선 패키지 관리자를 최신으로 변경하고 OS 패키지를 최신으로 변경함

2. Miniforge (Anaconda 대체) 설치 - ARM 지원

$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
$ chmod +x Miniforge3-Linux-aarch64.sh
$ ./Miniforge3-Linux-aarch64.sh

  - 설치 후 활성화

    $ source ~/miniforge3/bin/activate

3. 가상환경 생성 및 활성화

$ conda create -n tf python=3.10 -y		// 가상환경 tf를 python 버전 3.10.x로 생성
$ conda activate tf				// 가상환경 tf를 활성화

4. OpenCV 설치

4.1 conda-forge 채널 이용

$ conda install -c conda-forge opencv

 

4.2 pip를 사용하여 설치

$ pip install opencv-python
$ pip install opencv-contrib-python

4.3 필요한 경우 추가 의존성 설치

$ sudo apt update
$ sudo apt install libopencv-dev python3-opencv

4.4 설치 확인

$ python -c "import cv2; print(cv2.__version__)"

반응형

'라즈베리파이' 카테고리의 다른 글

harris.py  (0) 2025.09.20
laplacian.py  (0) 2025.09.20
mediapip.py  (0) 2025.09.19
point_mediapipe.py  (0) 2025.09.19
sobel.py  (0) 2025.09.19
Posted by 세상을 살아가는 사람
,

아나콘다 설치하기

Python 2025. 9. 17. 23:16
반응형

Open CV를 공부하기 위해 한빛 아카데미 출판사에서 펴낸 "컴퓨터 비전과 딥러닝" 책을 공부한다.

프로그램 환경을 설치한다.

[파이썬 설치하기]

  여기서는 아나콘다를 설치하기를 권장하고 있다. 가상환경을 생성하고 그 속에서 수행하는 것을 권장하고 있다.

1. 아나콘다 설치하기

  - 아나콘다 공식 사이트(https://www.anaconda.com)에 접속해 Free Download 메뉴를 선택한다.

    Skip registration을 선택한 Distribution Installers의 Download 버튼을 클릭하여 다운로드 받는다.

    다운로드 받은 파일은 Anaconda3-2025.06-0-Windows-x86_64로 Anaconda Installer이다.

  - 더블 클릭하여 설치한다. (컴퓨터에는 이미 Python 3.10.6이 설치되어 있었다.)

  - Next 버튼을 선택한다.

  - I Agree 버튼을 선택한다.

  - Just Me (recommended)를 선택하고 Next 버튼 클릭한다.

  - 기본으로 설정된 Destination Folder를 변경하지 않고 Next 버튼을 클릭한다.

  - Install 버튼을 클릭한다.

  - Next 버튼을 클릭한다.

  - Next 버튼을 클릭한다.

  - 설치가 완료되었다.

  - 위와 같이 시작 메뉴에 Anaconda (anaconda3) 폴더가 생기고, 그 밑에 여러 메뉴들이 생겼다.

2. 가상 환경 생성하기

  - 위의 시작 메뉴에서 Anaconda Prompt(anaconda)를 선택하면 다음 그림과 같이 기본적으로 만들어진 base라는 가상환경이 나타난다.

  - 새로운 가상 환경 cv를 생성한다.

    + (base) C:\Users\user> conda create -n cv [enter]

    + 설치가 되고 다음과 같이 화면에서 y를 선택한다.

    + cv 가상 환경으로 이동하기 위하여 conda activate cv 명령어를 입력

    + 프롬프트가 (cv)로 변경된 것을 확인할 수 있다.

3. 가상 환경에서 사용할 통합 개발 환경과 라이브러리 설치하기

  - (cv) C:\Users\user> conda install spyder    // cv 가상 환경에 스파이더 설치

  - anaconda의 버전이 새로운 버전이 있어 update를 수행

    + (cv) C:|Users\user> conda update -n base -c defaults conda

  - (cv) C:\Users\user> pip install opencv-python    // cv 가상 환경에 OpenCV 설치

  - (cv) C:\Users\user> pip install tensorflow    // cv 가상 환경에 텐서플로 설치

  - (cv) C:\Users\user> conda list    // cv 가상 환경에 설치된 목록 보기

  - 이제 프로그래밍 환경이 모두 갖추어졌다.

    + 위 그림과 같이 윈도우 시작 메뉴에서 Spyder (cv)를 선택한다.

반응형

'Python' 카테고리의 다른 글

윈도우 환경에서 tensorflow 설치  (0) 2025.10.05
python에서 MySQL 연동하여 테이블 검색  (0) 2023.01.17
python mysql 연동  (0) 2023.01.17
[프로그램 1] 다이어몬드 출력  (0) 2023.01.14
Posted by 세상을 살아가는 사람
,