본문 바로가기

OpenCV4

OpenCV HSV 변경 HSV 는 Hue , 색상 Saturation 채도 Value (Brightness) 명도 를 뜻한다. OpenCV를 통하여 간단하게 HSV 변경이 가능하다. 먼저 원본 이미지를 cv2.cvtColor 함수를 통하여 BGR2HSV 로 변환. 이미지 변환을 위하여 float32로 변환을 해준뒤에 작업한다. 그 후에는 cv2.split 함수를 통하여 , 이미지를 hue, saturation, value , 3개의 채널로 손쉽게 나눌수 있다. 3개 채널의 값은 넘파이로, 0부터 255까지의 값만을 갖는다. 여기서 각 채널의 값을 넘파이 연산을 통하여 조절할 수 있다. 후에 3개의 채널을 다시 cv2.merge 함수를 통하여 합치고, uint8로 변경후에 이미지를 다시 불러오면 변경완료!!! 코드예제 1 2 3.. 2021. 5. 25.
OpenCV Persperctive 2 (마우스로 좌표 찍기) 이번에는 좌표를 수기로 적는 것이 아닌, 이미지를 보고 그 위에 원하는 곳을 클릭하여 그 클릭한 곳을 좌표로 설정하여 , 이미지를 확대해보려한다. 아래는 그 예제 코드이다. 먼저 마우스 관련 함수이다. 위의 함수를 이용하였다. 코드 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 import cv2 import numpy as np from utils import get_four_points img_src = cv2.imread('data/images/book1.jpg') # 결과물 이미지 사이즈 dst_size = (400, 300, 3) # 결과의 이미지를 넣을 .. 2021. 4. 26.
OpenCV AffineTransform, homography(perspective)Transform AffinTransform 은 선의 평행은 유지되면서 이미지를 변환한다. 이동, 확대, 반전의 변환까지 포함하며 , 3개의 매치되는 점이 필요하다. ( 원본이미지의 3개의 점과 , 변화된 이미지의 3개의 점으로 변환 행렬을 구하고 이미지를 변환시킨다 ) 변환행렬 구하는 예제 각기 다른 두개의 세점좌표를 만들고 , cv2.getAffineTransform함수에 적용하였다. cv2.getAffineTransform 함수는 두개의 좌표로 변환행렬을 구해준다. AffineTransform 코드예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import cv2 import numpy as np ## Affine Tra.. 2021. 4. 23.
OpenCV threshold, 이미지형태 변환(dilate,erode, opening, closing) threshold 함수는 이미지를 이진화할 때 사용한다. 이미지의 이진화란, 이미지를 흑과백으로 나누는것을 뜻하고, 흑과백으로 나눌때 우리가 원하는 기준치(임계값)을 설정해서, 임계값보다 크면 백으로, 임계값보다 작으면 , 흑으로 바꾸고 그 결과값을 보여주는 것이 threshold 함수이다. ( 이미지를 불러올때 Gray Scale 로 불러와야 한다 ) threshold 코드 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import cv2 src = cv2.imread('data/images/threshold.png', 0 ) #구분하기 위한 값 설정 ( 임계값 ) threshold = 0 # 0 은 검정색 maxValue = 255 cv2.imshow('o.. 2021. 4. 22.
728x90