Skip to content
DarkKaiser의 블로그
DarkKaiser의 블로그
  • 개발 관련 자료(노션)
  • Raspberry Pi(노션)
  • WD My Cloud(노션)
  • GitHub
DarkKaiser의 블로그

디지털 이미지의 마스크 기반 영상 처리

DarkKaiser, 2007년 7월 17일2023년 8월 30일

1. 개요
영상 내에서 차를 검출하기 위해서는 차가 무엇이냐는 정의부터 수행하여야 한다. 사람의 경우 학습을 통해 어떠한 것들이 차인지 쉽게 알 수 있지만 영상처리를 통해서 이를 구현하기 위해서는 다양한 절차가 필요하게 딘다. 영상 인식의 경우 다양한 방법론이 존재하며 가장 복잡한 접근 방식은 학습을 통한 방법이며 보다 간단한 인식 방법론은 인식하고자 하는 물체의 특징치 조합을 영상으로부터 추출하여 정의한 후 현재의 영상 내에 모델의 특징치 조합과 부합하는 부분이 있는지 탐색함으로써 해결할 수 있다. 특정 직선의 조합 및 각 직선간의 특정 관계를 차로 설정을 한 후, 영상 내에서 차의 모델 조건을 만족하는 후보들을 탐색하여 구하게 된다. 이러한 모델 구축 및 탐색의 과정에서 특징치에 관한 값들을 구해야 하며 이러한 가장 기본적인 연산은 일반적으로 마스크를 이용한 영상처리 기법을 이용하게 된다.

마스크의 구성은 용도에 맞게 구성되며, 이는 필터 디자인과 관련된 문제이다. 일반적으로 이는 중첨 이론(convolution theory)으로 설명될 수 있다.

 

이해의 편의를 돕기 위해 일차원 상에서 생각하기로 한다. 어떤 연속 신호f(t)가 있는 경우 여기에 h(t)라는 함수를 중첩 연산하는 것은 원래의 신호 f(t)는 고정하고 h(t)를 이동하면서 각 지점에서 f(t)와 h(t)를 곱하기 연산을 수행 후 그 값을 취하는 과정이다. 이와같은 과정을 통해 원래의 신호 f(t)와는 다른 신호를 얻을 수 있게 된다. 주어진 목적에 따라 h(t)를 디자인하면 되는 것이다. 위의 예는 연속 신호에 대한 경우이며, 이를 디지털 영상에 적용하기 위해서는 이산화를 거친 후에 유한한 크기의 h(t)를 이용하여 계산을 수행하면 된다.

사용자 삽입 이미지영상처리 분야에서는 일반적으로 주어진 목적에 따라 영상을 평활화(smoothing)하거나, 노이즈를 제거하거나, 윤곽 정보를 추출하는 등의 전처리 과정을 가장 먼저 수행하게 된다. 각각의 경우에 널리 사용되는 마스크의 형태는 다음과 같다.
사용자 삽입 이미지위의 그림에서 모든 마스크의 크기는 3 x 3의 형태이며, 이 사이즈는 변경할 수 있다. 위의 마스크의 이미지로의 적용 과정은 다음과 같다. 마스크를 원 이미지상의 계산 지점에 올려 놓은 후 해당 마스크의 계수값과 해당 이미지상의 값을 곱한 후 모두 더한 값이 현재 지점에서의 새로운 값이 된다.
사용자 삽입 이미지

디지털 이미지 프로세싱 마스크

글 내비게이션

Previous post
Next post

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ 2017년 9월 14일
  • 자주 사용되는 Lombok 어노테이션 2017년 9월 14일
  • 유니코드 #3 2017년 9월 14일
  • 유니코드 #2 2017년 9월 14일
  • 유니코드 #1 2017년 9월 14일

최신 댓글

    카테고리

    • 개인 자료 (1)
      • 일기 (1)
    • 주절주절 (7)
    • 프로그래밍 갤러리 (16)
    • 프로그래밍 언어 (186)
      • Java (29)
      • C/C++/VC++ (114)
      • C# (11)
      • Visual Basic (6)
      • 안드로이드 (9)
      • Objective-C (5)
      • JavaScript (4)
      • JSP/Servlet (2)
      • Python (4)
      • 어셈블러 (1)
    • 개발++ (44)
      • Book (11)
        • Joel On Software (10)
      • 프로젝트 관리 (6)
      • Maven (1)
      • 디버깅 (1)
      • DirectX (1)
      • Silverlight (1)
      • RESTful (1)
      • Hacking (1)
      • WDM (4)
      • VoIP (5)
      • 기타 (1)
    • 개발 도구 (15)
      • eclipse (14)
      • Sublime Text (1)
    • 네트워크 (7)
    • 설치 및 배포 (7)
      • InstallShield (2)
      • NSIS (4)
    • 버전 관리 (9)
      • Git (2)
      • CVS (2)
      • Subversion (5)
    • 데이터베이스 (7)
      • Oracle (3)
      • Sybase (2)
      • MS-SQL (2)
    • 단위테스트 (3)
      • JUnit (1)
      • NUnit (2)
    • 버그추적시스템 (2)
      • mantis (2)
    • 운영체제 (7)
      • Windows (5)
      • 리눅스 (2)
    • WAS (3)
      • WebLogic (3)
    • 디자인패턴 (1)
    • 디지털 이미지 프로세싱 (16)

    태그

    ArrayList ATL BMP CAB CAB 파일 CD-ROM COM DCOM Downcasting for each GetLastError() Java JDT JoelOnSoftware Lokbok netsh NUnit Python StringBuilder Subverion SVN TR1 unicows Upcasting WAVE weak_ptr WebClient Wrap 내장 객체 레이아웃 리소스 리팩토링 마우스 문자 스트림 바이트 스트림 배포 비스타 빌드 서브클래싱 스트림 시스템 에러메시지 오피스파일구별 임시파일 지역클래스 타입 라이브러리

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org
    ©2025 DarkKaiser의 블로그 | WordPress Theme by SuperbThemes