CS 100

[디지털영상처리] Histogram Processing (1)

히스토그램 처리 개요 히스토그램 평활화는 이미지의 전반적인 대비를 개선하기 위해 사용되는 방법이라고 지난 시간에 공부하였다. 하지만, 특정 밝기 계급에 픽셀이 지나치게 집중되어 있을 때, 이 방식은 몇 가지 문제점을 초래할 수 있다. 예를 들면, 평활화 후의 이미지에서 나머지 계급의 세부 정보가 손실되거나, 비자연스러운 노이즈나 패턴이 발생할 수 있다. 이러한 한계를 극복하기 위한 방법으로서 지역 히스토그램 처리 방법을 공부해 보겠다. 그리고 이를 이해하기 위해 히스토그램 매칭 또한 공부해 보도록 하겠다. 히스토그램 매칭(Histogram Matching)은 원하는 히스토그램 분포를 가진 참조 이미지를 사용하여, 타겟 이미지의 분포를 조정하는 방법이다. 반면, 지역 히스토그램 처리(Local Histog..

[마이크로프로세서] ATmega 128 디지털 입출력 제어

디지털 입출력 개요 지난 시간에 ATmega 128에 다양한 입출력 포트를 제어할 수 있다고 배웠었다. 이번 시간에는 범용 입출력 포트의 LED 기능을 이용해 점등해 보는 시간을 가지도록 해보자. 필자는 ATmega 128을 CPU로 장착한 JKit-128을 기준으로 설명하겠다. 본문 범용 입출력 포트 데이터 메모리에는 범용 레지스터 영역, I/O 레지스터 영역, 확장 I/O 레지스터 영역, SRAM 영역으로 나뉜다고 했었다. 이중 8비트의 입출력은 PA~PF 6개, 5비트의 입출력 포트는 PG 1개다. 범용으로 사용될 경우 읽기, 수정, 쓰기 기능을 수행할 수 있는데, 이는 포트를 비트 단위로 입/출력으로 자유롭게 설정 가능함을 의미한다. 이러한 기능의 제어는 I/O 레지스터로 설정한다. 물론 해당 제..

[디지털영상처리] Histogram Equalization (2)

본문 Histogram Equalization 히스토그램 평활화(Histogram Equalization)는 이미지의 밝기 분포를 균등하게 재분배함으로써 대비를 개선하는 기법이다. 이 과정에서 각 픽셀의 밝기 값을 조정하되, 이미지의 해상도는 그대로 유지한다. 따라서, 원본 이미지의 모든 픽셀은 보존되며, 그저 픽셀들의 밝기가 재조정되어 이미지의 대비와 세부 정보가 강화된다. 이를 수식으로 나타내면 다음과 같다. 따라서 히스토그램 평활화의 목표는 가능한 어떤 이미지라도 모든 밝기 레벨을 동적 범위(이미지에서 나타날 수 있는 최소 밝기와 최대 밝기 사이의 범위) 내에서 균등하게 사용하여, 이미지의 대비를 개선하는 것이다. 이 과정에서 원하지 않는 노이즈와 같은 아티팩트(Artifacts)들이 생길 수 있고..

[디지털영상처리] Histogram Equalization (1)

히스토그램 평활화 개요 히스토그램(Histogram)은 데이터의 분포를 그래프 형태로 시각화한 것이다. 이는 데이터 집합의 각 부분 또는 값의 빈도수를 보여주며, x축(계급, 카테고리)과 y축(빈도)으로 이루어져 있다. 히스토그램은 데이터의 형태, 중심, 분포, 변동, 이상치 등을 빠르게 파악하는 데 유용하다. 디지털 영상 처리에서 히스토그램은 각 픽셀 값이 얼마나 자주 등장하는지를 표현한다. 즉, x축으로는 이미지의 각 픽셀 밝기를, y축으로는 픽셀 수를 표현한다. 이미지 f(x, y) 함수를 정규화되지 않은 히스토그램으로 표현하면 다음과 같다. 여기서 rk는 k번째 계급을 의미하고, nk는 f(x, y)에서의 픽셀 수를 의미한다. 이 형태의 히스토그램은 이미지에서 각 밝기 레벨의 빈도수를 직접적으로 ..

[마이크로프로세서] ATmega 128 구조

ATmega 128 구조개요  지난 시간에 ATmega 128에 대한 대략적인 개요를 파악했었다. 이번 시간에는 ATmega 128의 CPU와 메모리 구조를 파악해 보는 시간을 가지도록 해보자. 시작하기 앞서 ATmega 128은 프로그램(SRAM)과 데이터(FLASH, EEPROM)가 분리되어 있으므로 Harvard 구조를 채택하고 있다는 점 알아두자. 그리고, 해당 구성요소들은 컴퓨터 구조 시간에서 한 번씩 다뤘던 내용이므로, 헷갈린다면 해당 게시글들을 확인해 보자.본문CPU 구조  ATmega 128의 CPU 구조다. 여기서 ALU를 포함해 범용 레지스터(General Purpose Register), 상태 제어 레지스터(Status and Control), 프로그램 카운터, 플래시 메모리, 명령 ..

[딥러닝] Data Clustering

Data Clustering 개요 데이터 클러스터링(Data Clustering)은 비슷한 특성을 가진 데이터들을 같은 그룹으로 묶는 과정을 의미한다. 이를 통해 데이터를 분류하거나 단순화할 수 있으며, 레이블이 없는 데이터를 처리하므로 비지도 학습으로 분류된다. 클러스터링은 데이터의 이해를 돕고, 숨겨진 패턴을 발견하는 데 유용하게 사용된다. 데이터 클러스터링은 크게 Hard Clustering과 Soft Clustering으로 나뉜다. Hard Clustering은 각 데이터 포인트를 하나의 클러스터에 할당하는 방식이고, 대표적인 알고리즘으로 K-means Algorithm이 있다. 반면, Soft Clustering은 데이터 포인트를 여러 클러스터에 확률적으로 할당하는 방식으로, Expectatio..

CS/딥러닝 2023.10.09

[디지털영상처리] Intensity Transformation(2)

본문 Piecewise-Linear Intensity Transformation 선형 변환을 여러 구간으로 나누어 적용하는 구간별 선형 변환(Piecewise-Linear Transformation)은 각 구간에서 다른 선형 변환을 적용할 수 있으므로, 이미지의 특정 영역이나 특정 강도 값을 강조하거나 약화시키는 데 유용하다. 만약 이미지의 밝기가 특정 영역에만 집중되어 있을 때, 전체 밝기 범위를 활용하여 대비를 늘리는 Contrast Stretching 방법이 가능하고, 이미지에서 관심 있는 특정 밝기 범위를 강조하고, 나머지는 약화시키는 Gray-level slicing도 가능하다. Ig = rgb2gray(imread("example.jpg")); [M,N] = size(Ig); Ip = zero..

[디지털영상처리] Intensity Transformation(1)

강도 변환 개요 디지털 영상 처리 분야에서, 영상 정보는 주로 변환 도메인(Transform Domain)과 공간 도메인(Spatial Domain)과 에서 표현하고 처리한다. 전자는 이미지를 다른 형태로 변환시켜 나타내는 방식을 의미한다. 예를 들어, 푸리에 변환(Fourier Transform)이나 웨이블릿 변환(Wavelet Transform)과 같은 기법들이 이에 포함된다. 이 도메인에서의 처리는 주로 신호의 주파수 성분을 분석하고 조작하는 데 사용된다. 반면 공간 도메인은 이미지 평면(혹은 이미지 그 자체)에서 픽셀들의 직접적인 밝기 값을 다루고 조작한다. (x, y) 주변의 픽셀 값을 이용해 새로운 g(x, y)를 생성한다는 측면에서 필터링과 비슷한 성격을 띠고 있다. 이를 수식으로 표현하면 ..

[마이크로프로세서] ATmega AVR 개요

ATmega AVR 개요 ATmega AVR은 ATMEL(현 Microchip) 사에서 제작한 RISC 구조의 저전력 CMOS 마이크로컨트롤러다. 이 마이크로컨트롤러는 다양한 종류의 I/O 메모리, 페리페럴(Peripheral) 옵션(CPU 외부에 위치한 장치들)을 제공하고 있어, 다양한 임베디드 시스템 개발에 활용되고 있다. 특히 AVR RISC 구조는 CISC에 비해 10배 이상 빠른 속도로 프로그램이 실행될 수 있는 코드 체계를 갖추고 있다. 즉, 대부분의 명령이 단일 클럭(1MHz당 1MIPS)으로 실행하며, 프로그램 메모리와 데이터 메모리를 동시에 접근할 수 있다. 또한 ISP(Im-System Programming) 방식을 최초로 도입해 프로그램 개발 시간을 단축하였다. 또한 레지스터를 기반으..

[마이크로프로세서] 메모리 분류

메모리 분류 개요 지난 컴퓨터 구조 시간에 메모리에 관해 전반적인 공부를 했었다. 이번 시간에는 메모리 분류에 초점을 맞춰 공부해 보도록 하겠다. 본문 해당 사진은 메모리를 제조 재료, 휘발성 등으로 나눈 분류표다. 우리가 중점적으로 다뤄야 하는 것은 반도체 메모리며, 이를 휘발성과 비휘발성으로 나눠 알아보자. 휘발성 메모리(RAM) 먼저 휘발성 메모리는 크게 SRAM과 DRAM으로 나눌 수 있다. SRAM은 속도가 빠르지만 가격이 비싸다는 단점이 있고, 반대로 DRAM은 속도가 느린 대신 가격이 싸다는 장점이 있다. 따라서 이 둘의 특성에 맞게 자주 접근할 수 있는 캐시 메모리는 SRAM으로 만들고, 자주 접근하지 않지만 용량이 큰 주기억장치 메모리는 DRAM으로 만든다. 비휘발성 메모리(ROM) 롬은..