본문 바로가기
반응형

영상처리 프로그래밍24

[C++] Ubuntu에서 OpenCV 라이브러리를 포함하여 빌드하는 방법 opencv를 cmake를 통해 makefile을 생성하고 make를 사용하여 빌드 1. 소스 코드가 존재하는 위치에 CMakeList.txt 파일 생성 를 빼고 자신에게 맞는 형식으로 바꿔주기 cmake_minimum_required(VERSION ) project() find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) add_executable( .cpp) target_link_libraries( ${OpenCV_LIBS}) 예) cmake_minimum_required(VERSION 3.26.4) project(HelloCV) find_package(OpenCV REQUIRED) include_directories(${.. 2023. 7. 12.
관심 영역(ROI) ROI란? 영상이나 동영상의 내가 관심 있는 부분을 뜻한다. 영상이나 동영상을 처리 할때 관심영역을 지정하는 것은 매우 중요하다. 관심 영역의 부분만 원하는 처리를 하기 위해서이다. 관심 영역(ROI)를 활용하여 국기 그리기 관심 영역을 설정하여 해당 ROI의 픽셀 값을 변경해 주면 국기를 그릴 수 있다. 간단한 예제를 통해서 국기를 그려보겠다. import numpy as np, cv2 img = np.zeros((500, 700, 3), np.uint8) cv2.imshow("img", img) cv2.waitKey() cv2.destroyAllWindows() 위 소스를 입력하면 zero 함수를 사용했기 때문에 가로 700 세로 500의 3채널 영상을 얻을 수 있다. 이 검은색 영상을 세로를 3등분.. 2022. 11. 16.
논리(비트) 연산 논리(비트) 연산 함수 함수 설명 cv2.bitwise_and(src1, src2[ , dst [ , mask]]) >> dst 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 논리곱(AND) 연산을 수행한다. cv2.bitwise_or(src1, src2[ , dst [ , mask]]) >> dst 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 논리합(OR) 연산을 수행한다. cv2.bitwise_xor(src1, src2[ , dst [ , mask]]) >> dst 설명 : 두 행렬의 원소 간 혹은 행열 원소와 스칼라 간의 비트별 배타적 논리합(XOR) 연산을 수행한다. cv2.bitwise_not(src[ , dst [ , mask]]) >> dst 설명 :.. 2022. 11. 16.
OpenCV 채널 처리 함수 채널 처리 함수 함수 설명 cv2.merge(mv[ , dst]) >> dst 설명 : 여러 개의 단일채널 배열을 다채널 배열로 합성한다. 인수 설명 mv 합성될 입력 배열 혹은 벡터, 합성될 단일채널 배열들의 크기와 깊이(depth)가 동일해야 함. dst 입력 배열과 같은 크기와 같은 깊이의 출력 배열 cv2.split(m[ , mv] >> mv 설명 : 다채널 배열을 여러 개의 단일채널 배열로 분리한다. 인수 설명 m 입력되는 다채널 배열 mv 분리되어 반환되는 단일채널 배열들의 벡터 *merge와 split은 위에서 설명한 것과 같이 채널을 합치거나 나누어 주는 opencv함수이다. cv2.spilt()을 예를 들면 BGR채널을 B채널, G채널, R채널로 각각 나누어 반환한다. cv2.merge는.. 2022. 11. 3.
OpenCV Python 영상 파일 I/O 처리 이미지 파일 처리 함수 설명 cv2.imread(filename[, flags]) >> retval 지정한 영상 파일로 부터 영상을 적재한 후, 행렬로 반환한다. 인수 설명 filename 적재할 영상 파일 이름(디렉터리 구조(폴더 위치) 포함) flags 적재한 영상을 행렬로 반환될 때 컬러 타입을 결정하는 상수 cv2.imwrite(filename, img[, params]) >> retval 설명 : img 행렬을 지정한 영상파일로 저장한다. 인수 설명 filename 저장할 영상파일 이름(디렉터리 구조(폴더 위치) 포함), 확장자명에 따라 영상파일 형식 결정 img 저장하고자 하는 행렬(영상) params 압축 방식에 사용되는 인수 쌍(paramld, paramValue) 영상파일 읽기 소스 코드.. 2022. 10. 6.
영상의 특징 검출 기법 엣지(Edge) 엣지(Edge, 경계선)는 영상의 두드러진 경계 영역으로 영상 내 물체에 대한 모양, 크기, 텍스쳐 등의 많은 정보를 알려준다. 일반적으로 엣지는 영상 내 물체와 배경 같의 밝기값 차이(gradient, 그래디언트)가 갑자기 변하는 지점으로, 이 지점을 검출하기 위해서는 수학적으로 미분 연산자를 이용하면 된다. 엣지 검출 방법 엣지 검출을 위한 연산 방법 로버트 크로스 엣지 검출기(Roberts Cross Edge Detector) 소벨 엣지 검출기(Sobel Edge Detector) 프르윗 엣지 검출기(Prewitt Edge Detector) 캐니 엣지 검출기(Canny Edge Detector) 라플라시안 엣지 검출기(Laplacian Edge Detector) 엣지 검출을 위한 연.. 2022. 8. 23.
영상의 공간적 필터링 기법 - 언샤프 필터링(Unsharp Filtering) 공간적 필터링 기법은 각각의 목적에 따라 적절한 커널(kernel) 혹은 필터(filter)를 정의하고 원본 영상과 컨벌루션(convolution) 연산을 수행하는 것이 일반적이다. 컨벌루션 연산은 입력 영상의 픽셀 밝기 값을 커널의 동일한 위치에 해당하는 픽셀값과 곱하고 모든 값들을 더한값으로 대체하는 방법이다. 평균 필터링(Mean Filtering) 중간값 필터링(Median Filtering) 가우시안 필터링(Gaussian Filtering) 보존 스무딩(Conservative Smoothing) 언샤프 필터링(Unsharp Filtering) 언샤프 필터링이란? 언샤프 필터링은 영상의 에지와 같은 고주파 성분을 강조(enhancing)하는 필터링 방법으로 선명하지 않은(blurred) 영상의 .. 2022. 8. 12.
영상의 공간적 필터링 기법 - 보존 스무딩(Conservative Smoothing) 공간적 필터링 기법은 각각의 목적에 따라 적절한 커널(kernel) 혹은 필터(filter)를 정의하고 원본 영상과 컨벌루션(convolution) 연산을 수행하는 것이 일반적이다. 컨벌루션 연산은 입력 영상의 픽셀 밝기 값을 커널의 동일한 위치에 해당하는 픽셀값과 곱하고 모든 값들을 더한값으로 대체하는 방법이다. 평균 필터링(Mean Filtering) 중간값 필터링(Median Filtering) 가우시안 필터링(Gaussian Filtering) 보존 스무딩(Conservative Smoothing) 언샤프 필터링(Unsharp Filtering) 보존 스무딩(Conservative Smoothing) 보존 스무딩은 입력 영상의 픽셀 값이 주변 픽셀과 비교했을 때 너무 높거나 너무 낮은 경우 잡음으.. 2022. 8. 11.
영상의 공간적 필터링 기법 - 가우시안 필터링(Gaussian Filtering) 공간적 필터링 기법은 각각의 목적에 따라 적절한 커널(kernel) 혹은 필터(filter)를 정의하고 원본 영상과 컨벌루션(convolution) 연산을 수행하는 것이 일반적이다. 컨벌루션 연산은 입력 영상의 픽셀 밝기 값을 커널의 동일한 위치에 해당하는 픽셀값과 곱하고 모든 값들을 더한값으로 대체하는 방법이다. 평균 필터링(Mean Filtering) 중간값 필터링(Median Filtering) 가우시안 필터링(Gaussian Filtering) 보존 스무딩(Conservative Smoothing) 언샤프 필터링(Unsharp Filtering) 가우시안 필터링(Gaussian Filtering) 가우시안 필터링은 가우시안 분포(Gaussian distribution)를 따르는 가우시안 커널을 이.. 2022. 8. 7.
영상의 공간적 필터링 기법 - 중간값 필터링(Median Filtering) 공간적 필터링 기법은 각각의 목적에 따라 적절한 커널(kernel) 혹은 필터(filter)를 정의하고 원본 영상과 컨벌루션(convolution) 연산을 수행하는 것이 일반적이다. 컨벌루션 연산은 입력 영상의 픽셀 밝기 값을 커널의 동일한 위치에 해당하는 픽셀값과 곱하고 모든 값들을 더한값으로 대체하는 방법이다. 평균 필터링(Mean Filtering) 중간값 필터링(Median Filtering) 가우시안 필터링(Gaussian Filtering) 보존 스무딩(Conservative Smoothing) 언샤프 필터링(Unsharp Filtering) 중간값 필터링 중간값 필터링은 입력 영상의 현재 픽셀을 중심으로 커널을 씌우고, 커널 안에 포함된 주변 픽셀들을 밝기값 기준으로 정렬하여 중간에 위치한 .. 2022. 8. 6.
영상의 공간적 필터링 기법 - 평균 필터링(Mean Filtering) 공간적 필터링 기법은 각각의 목적에 따라 적절한 커널(kernel) 혹은 필터(filter)를 정의하고 원본 영상과 컨벌루션(convolution) 연산을 수행하는 것이 일반적이다. 컨벌루션 연산은 입력 영상의 픽셀 밝기 값을 커널의 동일한 위치에 해당하는 픽셀값과 곱하고 모든 값들을 더한값으로 대체하는 방법이다. 평균 필터링(Mean Filtering) 중간값 필터링(Median Filtering) 가우시안 필터링(Gaussian Filtering) 보존 스무딩(Conservative Smoothing) 언샤프 필터링(Unsharp Filtering) 평균 필터링 평균 필터링은 입력 영상의 픽셀 밝기 값을 주변 픽셀들의 밝기값의 평균으로 대체하여 영상을 수무딩(Smoothing) 시키면서 잡음을 줄이는.. 2022. 8. 5.
영상의 화질 향상 기법-히스토그램 스트레칭(Histogram Stretching), 히스토그램 평활화(Histogram Equalization) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 히스토그램 스트레칭이란? 영상의 밝기값 범위를 확장(또는 축소) 시킴으로써 영상의 대비(contrast)를 향상시키는 방법을 말한다. 이 방법은 히스토 그램 평활화(Histogram Equalization) 방법과는 다르게 영상 픽셀들에 대해 선형 확장 함수(Linear scaling function)를 적용하여 구현 할 수 있다. 히스토그램 스트레칭 알고리즘 영상을 정규.. 2022. 8. 4.
영상의 화질 향상 기법-적응적 임계값 적용하기(Adaptive Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 적응적 임계값 적용하기(Adaptive Thresholding) 전역 임계값 적용 방법은 모든 픽셀에 대해 동일한 임계값을 적용하는 방식으로 영상이 전경과 배경으로 확연히 구분될 경우 매우 뒤어난 성능을 발휘한다. 하지만 영상 안에 조명이 일정하지 않거나 다양한 색상을 가지는 전경 물체가 있을 경우 하나의 임계값만으로 전경과 배경을 구분하는 것은 쉽지 않다. 따라서 이러한.. 2022. 7. 27.
영상의 화질 향상 기법-임계값 적용하기(Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 임계값 적용하기(Thresholding) 임계값 적용하기(Thresholding)란? 전경 영역과 배경 영역의 밝기 차이나 색상 차이를 이용하여 영상의 배경으로 부터 전경 영역들을 분리할 수 있는 가장 기본적인 방법이다. Threshold : 이미지를 이진화하여 흑/백으로 나누는 기술 소스 코드 예제에서 임계값을 추출할때 140보다 작을때를 기준으로 했지만 실제 140으로.. 2022. 7. 26.
영상의 화질 향상 기법- 전역 임계값 적용하기(Global Thresholding) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 전역 임계값 적용하기(Global Thresholding) 영상으로부터 적절한 임계값을 매번 인위적으로 결정한다는 것은 매우 어려운 일입니다. 따라서 임계값을 자동으로 결정하기 위한 방법으로 전역 임계값 적용 방법을 소개하려고 합니다. 전역 임계값 적용 방법은 영상을 두 개의 그룹으로 분할하고 각 그룹마다 평균값을 계산하여 이 값들을 임계값 계산에 적용하는 방법을 사용합니.. 2022. 7. 26.
영상의 화질 향상 기법-히스토그램(Histogram) 만들기 영상 화징 향상을 위한 매핑 함수 M s=M(r) 화질 향상 기법 히스토그램(Histogram) 만들기 임계값 적용하기(Thresholding) 전역 임계값 적용하기(Global Thresholding) 적응적 임계값 적용하기(Adaptive Thresholding) 히스토그램 스트레칭(Histogram Stretching) 히스토그램 평활화(Histogram Equalization) 히스토그램 만들기 히스토그램(Histogram)이란? 영상 안에 포함된 각각 다른 밝기값을 갖는 픽셀들의 수(분포)를 보여주는 그래프를 의미합니다. 영상의 픽셀에서 각 픽셀의 밝기값을 가로 축의 도수로 표시하고 밝기값에 해당하는 픽셀의 개수를 누적해 작성합니다. 조금더 간단히 하면 for loop를 통해 간단히 할 수 있다. 2022. 7. 25.
영상의 산술(Arithmetic) 및 논리(Logic) 연산 (2) 5. 픽셀 결합(Pixel Blending) 픽셀 결합 방법은 두 개의 동일한 크기의 입력 영상을 결합하는 방법으로, 다른 산술 연산 방법과 마찬가지로 대응되는 두 영상의 픽셀들을 선형 결합(linear combination)에 의해 출력 영상을 생성한다. 입력된 두 영상 P와 Q의 동일 좌표 픽셀들을 가중치 W에 따라 결합하여 출력 영상 O(x,y)에 입력한다. 이때 가중치에 해당하는 W는, 0 2022. 7. 19.
영상의 산술 연산 영상의 산술 연산 산술 연산이란? 쉽게 말해 초등학교 때 배우는 덧셈, 뺄셈, 곱셈 나눗셈과 같은 기본적인 산수 계산을 의미한다. 이러한 연산 방법은 영상에서도 유사하게 적용될 수 있다. 그 결과로 새로운 형태의 영상을 만들어내거나 영상의 화질을 향상시킬 수 있다. 1. 덧셈 연산 덧셈 연산 : 두 영상의 같은 위치에 존재하는 픽셀의 그레이스케일 값을 더하여 새로운 영상을 만드는 연산이다. 위 수식에서 f와 g는 두 개의 입력 영상을 의미하고, h는 덧셈 연산에 의해 새로 생성된 결과 영상이다. 덧셈 연산은 영상을 2차원 행렬로 간주하면 쉽게 이해할 수 있는 연산이다. 영상 내에 존재하는 모든 픽셀들을 순회하면서, 각 픽셀에 대하여 덧셈 연산을 수행한다. 두 개의 영상을 더하는 산술 연산의 예 덧셈 연산.. 2022. 7. 18.
반응형