분류 전체보기 (40) 썸네일형 리스트형 [OpenCV][C++] 훼손된 영상 복원하기 - cv::inpaint() 사진속 그림 지우기 제거 image restore 회복 되돌리기 이번에는 좀 재미있는 함수를 알아보려고 합니다. 훼손된 영상을 주변 픽셀 정보를 이용하여 채워넣는 방법입니다. 이 함수를 알아보기 위해 이전에 알아보았던 마우스 이벤트를 사용해볼께요. https://m.blog.naver.com/dorergiverny/223084092098 [OpenCV][C++] 마우스 이벤트 처리 총정리 - onMouse setMouseCallback EVENT_MOUSEMOVE LBUTTONDOWN 이전에는 윈도우 생성 방법과 키보드 입력을 받아 이벤트를 처리하는 방법에 대해 알아보았습니다. https:/... blog.naver.com inpaint()의 원형은 아래와 같습니다. src 입력 영상 inpaintMask inpaint 할 마스크 영상 dst 출력 영상 inpaint.. [소프트웨어] SW 개발 방법론(2) - 폭포수 모델 프로세스 나선형 통합 애자일 agile waterfall model process spiral unified 선언문 협업 UP 지난 시간에 소프트웨어 개발 방법론에 대해 기초를 알아봤습니다. https://m.blog.naver.com/dorergiverny/223030851029 소프트웨어 개발 방법론(1) - 프로그래밍 차이 구조적 절차적 객체지향 모호성 명사 동사 모듈화 우리는 지난 시간에 기술 부채 techincal debts 에 대해 알아봤습니다. https://blog.naver.com/dorergiver... blog.naver.com 오늘은 소프트웨어 개발 프로세스에 대해 알아 보겠습니다. 1. 소프트웨어 개발 프로세스란? 2. 폭포수 모델 3. 나선형 모델 4. 통합 모델 5. 애자일 모델 소프트웨어 개발 프로세스란? 소프트웨어 개발 프로세스란 무엇일까요? 소프트웨어를 개발할 때 해야 하는 일의 순서를 정의하는 .. [소프트웨어] SW 개발 방법론(1) - 프로그래밍 차이 구조적 절차적 객체지향 모호성 명사 동사 모듈화 상속 추상화 프로그래머 우리는 지난 시간에 기술 부채 techincal debts 에 대해 알아봤습니다. https://blog.naver.com/dorergiverny/223030520258 [C/C++] Technical Debt 란? 기술 부채 debts 정의 발생 원인 필요성 SW 개발 소프트웨어 이율이 높아지는 요즘 같은 시대에 빚이란 걸 생각하기도 싫다. 어려운 길과 쉬운 길이 있다면 누구나 쉬운... blog.naver.com 오늘 알아볼 내용은 아래와 같습니다. 1. 소프트 웨어와 프로그래밍의 차이 2. 소프트웨어는 언어다? 3. 구조적(절차적) 개발 방법론 4. 객체지향 개발 방법론 소프트웨어 vs. 프로그래밍 소프트웨어 개발 방법론을 논하기에 앞서, 소프트웨어가 무엇인가? 생각해 봅시다. 예를 들어, "1부터.. [C++] string to char* 와 char* to string 문자열 변환 총정리 const c_str strcpy begin vector 이전에 std::string 클래스에 대해 총정리를 해 보았습니다. https://m.blog.naver.com/dorergiverny/223046924132 [C++] std::string 클래스 ( 문자열 ) 사용법 완벽 총정리 - string 확장 함수 erase find append stoi to_string 이번엔 문자열(string)을 다루는 클래스인 string 클래스를 파헤쳐봐요. std::string 의 모든 것을 정리해... blog.naver.com 이번에는 string 과 char* 간 변환 방법에 대한 총정리를 해 보겠습니다. 이게 어려운 내용이 아니지만 가끔 찾아보고 싶을 때가 있는 변환이에요. 그래서 정리해 드립니다. string 을 char*로 변환 1. c_str() 사용 .. [OpenCV][파이썬] VSCode 설치 및 anaconda 연동하기 - Visual Studio Code 세팅 IDE 아나콘다 python 최신버전 환경설정 버전확인 지난번에는 anaconda를 설치하고 Jupyter Notebook을 사용하는 방법에 대해 알아봤습니다. https://m.blog.naver.com/dorergiverny/223125248536 [데이터 분석][Python] windows 10에 아나콘다(anaconda) 파이썬 설치 및 Jupyter 노트북 사용법 이번에는 아나콘다 설치 방법 및 Jupyter 노트북 사용법에 대해 알아보도록 하겠습니다. 아나콘다(Anacon... blog.naver.com 아무래도 데이터 분석을 위해서는 주피터 노트북을 활용하는 것이 한줄마다 결과를 바로 볼 수 있어서 편리했습니다. 하지만 영상처리, Computer Vision을 하기 위해서는 Jupyter Notebook 보다는 일반적인 IDE(Integrated.. [OpenCV][C++] 영상 가장자리(Border) 픽셀 확장 방법 총정리 - 필터링 적용 copyMakeBorder 지난 시간에 평균 필터(Average Filter)에 대해 알아보면서 다루지 않은 부분이 있어요 https://m.blog.naver.com/dorergiverny/223096804790 [OpenCV][C++] 평균 필터 영상 스무딩smoothing 연산 블러링 blurring 총정리 - boxFilter filter2D image 부드럽 이번에는 필터링에 대해 간단히 알아 본 후에 영상 노이즈 제거하는 방법 중 가장 기본인 평균 필터에 대해... blog.naver.com 바로 가장자리 픽셀 확장 방법에 대한 내용이에요. cv::boxFilter()의 마지막 인자로 borderType이란 인자가 있었어요. base.hpp를 보면, 아래와 같이 가장자리 타입 상수값들이 있어요. 제가 직접 실험해 본 결.. [OpenCV][C++] 평균 필터 스무딩(smoothing) 연산 블러링(blurring) 총정리 - boxFilter filter2D 이번에는 필터링에 대해 간단히 알아 본 후에 영상 노이즈 제거하는 방법 중 가장 기본인 평균 필터에 대해 알아보겠습니다. 그리고 opencv에서 제공하는 평균 필터들의 속도를 측정하여 평균 필터를 적용할 때 어떠한 함수를 사용하는 것이 가장 좋은지를 확인해보겠습니다. 필터링(Filtering) 이란? 필터링은 계산하고자하는 대상 픽셀과 그 주변 픽셀들을 활용하여 새로운 픽셀 값을 얻는 방법입니다. 이 때 주변 픽셀을 어느 범위까지 어떻게 해야 할지를 결정해야 합니다. 이런 역할을 하는 것이 바로 커널(kernel) 또는 윈도우(window), 마스크(mask)라고 불리는 행렬입니다. 일반적으로 우리가 사용하는 커널은 아래와 같은 모양들이 있습니다. 사실 정사각형의 커널을 가장 많이 사용하고 있으며, 원소.. [OpenCV][C++] 동일 영상 판별(체크)하는 쉽고 빠른 방법 - 같은 영상인지 확인 countNonZero convertTo 우리가 영상처리를 하다보면 어떠한 처리 결과 영상이 같은지를 확인하고 싶을 때가 있습니다. 이번에는 쉽고 빠르게 두 영상이 같은지를 확인하는 방법에 대해 알아보겠습니다. countNonZero() 로 알아내기 우리가 가장 쉽게 생각할 수 있는 방법이 두 영상의 차영상을 구해서 모든 픽셀이 0인지 아닌지를 확인하는 방법입니다. 영상을 먼저 입력 받습니다. 그리고 동일한 영상을 만들기 위해 clone을 합니다. cv::Mat src = cv::imread("lena_color.bmp", cv::IMREAD_GRAYSCALE); cv::Mat src_clone = src.clone(); 그 이후 cv::subtract() 또는 cv::absdiff() 를 이용하여 두 영상의 차영상을 계산합니다. cv::Mat.. 이전 1 2 3 4 5 다음