프로그래밍 공부/디지털 영상처리(with MATLAB)

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ⑧ Image Restoration

영상 열화 모델(Image degradation model) 공간 영역에서 영상 f(x,y)와 공간필터 h(x,y)를 회선 처리하면 열화가 된 어ᄄᅠᆫ 형태의 영상도 만들 수 있다. 열화가 된 영상에 대해서 아래와 같이 표현한다. g(x,y) = f(x,y)*h(x,y) 기호 *는 회선 연산을 의미한다. 잡음 n까지 고려한다면 랜덤(random) 오차를 n(x,y)로 표현하여 식을 아래와 같이 표현할 수 있다. g(x,y) = f(x,y)*h(x,y)+n(x,y) 동일한 영상을 주파수 영역에서도 진행할 수 있다. 푸리에 변환의 선형성 때문에 회선 연산은 곱하기 연산으로 치환, 더하기 연산은 변하지 않고 아래 식으로 표현한다. G(i,j) = F(i,j)*H(i,j)+N(i,j) F, H, N은 f, h,..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ⑦ Image Geometry

1) 연습문제 3 zero-interleaved matrix 함수 구현 교재에 머리 부분 배열을 알려준다. 그리고 문제에서 명령어의 순서를 사용해야 하기 때문에, resize를 이용해서는 진행하지 않았다. 세 가지 필터 정의 ① Nearest ② Bilinear ③ Bicubic 교재는 zero-interleaved를 보여줬지만, 대신에 원본을 확대해보았다. Nearest - aliasing 생성된 느낌이 든다. Bilinear - aliasing이 생성되었다가 부드러워진 느낌이 든다. Bicubic - 너무 흐려져서 Blur 처리된 느낌이 든다. 원본을 확대한 것은 Bilinear와 Nearest의 사이지만 Bilinear와 유사한 느낌이다. 2) 연습문제 5 2배는 많고 8배는 큰 거 같아서 적당히 ..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ⑥ Neighborhood Processing

1) 연습문제 1의 c, d, e, f 연습문제 1의 9X9 배열과 a~h 마스크이다. 이 중 c~f 마스크만 손으로 계산해봤다. 2) 연습문제 2의 c, d, e, f 연습문제 1의 9X9 배열 x, c~f 마스크 선언 연습문제 1의 c~f 마스크를 x에다가 적용(필터링)해보자. - mask c 적용 - mask d 적용 - mask e 적용 - mask f 적용 연습문제 1의 손으로 작성한 것과 결과가 같다. 3) 연습문제 4 – 필터(마스크)를 사용하여 공간 필터링을 수행해도 원 영상과 결과 동일 영상이 나타나는 필터를 설계 – 연습문제 1의 행렬을 사용하여 설계한 필터로 필터링한 결과를 제시 1. 중앙부 값이랑 동일 값으로 반환하면 공간 필터링을 수행해도 원본 영상과 값이 같다. 3X3에서 중앙값..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ⑤ Point Processing 2

1) 다음의 작은 영상은 0~19 범위의 그레이 값들을 가지고 있다. 그레이 레벨 히스토그램과 이 히스토그램을 평활화하는 사상(mapping)을 계산하라. 히스토그램 평활화를 수행한 새로운 영상에 대해서 아래와 같은 형태의 8 X 8 그레이 값들의 격자를 만들어라. 기존 8 X 8 그레이 값 위 내용을 프로그래밍하여 결과를 비교해보자. 우선 원본과 직접 평활화한 영상을 비교하면 히스토그램이 전반적으로 펼쳐져 있는 것을 확인할 수 있다. 마지막은 프로그래밍으로 진행한 평활화인데 범위가 0~19가 아니라 0~255로 표현되어 있는 것을 확인할 수 있다. (그래서 axis([0 9 0 15])를 추가했다.) 2) 앞서 변환한 카메라맨 인덱스 영상을 입력으로 사용하여 히스토그램 평활화 알고리듬을 실행하는 프로그..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ④ Point Processing 1

디지털 영상처리 교재(연습 문제 2, 3번) 1) blocks 영상 b에 대해서 다음의 명령들을 수행하라. 우선 ‘blocks.tif’를 가져와 다음 문제에 있는 명령을 수행해보자. [그림 1] blocks.tif [그림 2] imshow(bb2) 출력 결과 결과: 영상의 크기는 같다. 하지만 눈으로 보이는 품질은 많은 차이가 존재한다. imdivide 함수를 통해 64로 나누었을 때 데이터값이 손실되었고, 그 이후 immultiply 함수를 통해 64를 곱하여도 손실된 값은 돌아오지 않기 때문이다. 정확히는 255/64로 4개의 화소 데이터 중 한 화소 만을 가지고 저장이 되고, 다시 곱하였을 때 그 값을 곱하는 것이기 때문이다. 2) 문제 2에서의 값 64를 32와 16으로 치환하여 수행하라. 우선 ..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ③ 영상 디스플레이

이번에는 디지털 영상처리 교재의 문제를 풀어보자 1) Bit Plane을 이용한 영상 워터마킹 • 카메라맨 영상을 비트 평면으로 표현하고 LSB 평면을 이름 영상으로 교체하라. • LSB 평면을 교체한 영상을 다시 8비트 그레이스케일 영상으로 저장하여 디스플레이 하라. 우선 밑과 같이 카메라맨 영상을 비트 평면으로 표현하였다. LSB 평면의 경우 내 이름 영상으로 추가하였다. 'name.png' 파일의 크기를 resize로 맞춘 후 LSB 평면 생성한 이름 영상이다. 이제 LSB의 내 이름과 비트 평면을 합성해보자. 아마 보기에는 카메라맨 영상으로만 확인되지만, 안에는 내 이름이 숨겨져 있을 것이다. 2) 카메라맨(256*256) 영상을 각각 128*128과 64*64 크기의 유효 해상도를 가지는 영상으..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ② 영상처리 기초

매트랩을 통한 기본 영상(Image) 처리 방법을 알아보도록 하자. 1) 이미지 확장자명 바꾸기 기본적으로 매트랩은 파일 확장자명 변환이 자유롭다. 왼쪽 사진과 같이 파일이 저장된 것을 확인할 수 있다. 영상 출력 결과: cameraman.tif cameraman.jpg 블로그에서 tif 형식 지원을 안하나 보다... cameraman.png cameraman.bmp 2) 이진 영상 변환 im2bw라는 함수를 이용하여 간단하게 이진화를 할 수 있다. 앞서 진행한 변수 'v'에 “cameraman.tif” 파일이 저장되어 있다. 그 파일을 0.5 * 255 = 127.5를 임계값 설정 후 만들어진 이전 영상을 BW에 저장하였다. 영상 출력 결과: 3) 본인 사진을 인덱스 컬러 영상으로 변환 우선 ‘a’에 ..

프로그래밍 공부/디지털 영상처리(with MATLAB)

Digital Image Processing with MATLAB - ① MATLAB 사용 실습

매트랩을 통해서 디지털 영상처리를 진행하기 전 매트랩 기본적인 활용법에 대해서 공부해봤다. 설명은 주석을 다 달아놨으니 한 번 씩 훑어보면 도움이 되지않을까~ 1) 스칼라, 벡터 생성 2) 변수 초기화 및 벡터 출력 3) 행렬 크기 표시 4) 스칼라, 벡터 연산(pointwise) 5) 벡터 연산 함수 6) 벡터&벡터 연산 7) conv(a,b) 함수 이 부분은 a 벡터에 대한 b 벡터가 필터 작용을 한다. 8) 파일 저장 및 불러오기, 변수 초기화 9) for, find 함수 10) 사용자 정의 함수 제작 및 호출 11) 사진 좌우 대칭 함수 1. ‘convert_hand.m’ 사용자 정의 함수 만들기 2. ‘convert_hand.m’ 사용자 정의 함수 실행 3. ‘convert_hand.m’ 사용자..

티키택
'프로그래밍 공부/디지털 영상처리(with MATLAB)' 카테고리의 글 목록