컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 이미지 처리 중 전면 프레임과 후면 프레임 간 서로 다른 조명의 영향을 줄이는 방법

이미지 처리 중 전면 프레임과 후면 프레임 간 서로 다른 조명의 영향을 줄이는 방법

단계

1. 최대(최소) 값 필터링을 수행하여 초기 조명 맵을 얻습니다.

2. 평균(또는 가우스) 필터링을 수행하여 최종 결과를 얻습니다. 조명 분포 맵

3. 원본 이미지에서 조명 이미지를 빼서 전경 타겟을 얻습니다.

함께 제공되는 rice.png 이미지를 가져옵니다. MATLAB을 예로 들어보겠습니다. 우리는 쌀을 배경과 구별할 수 있기를 바랍니다. 직관적인 접근 방식은 임계값 분할을 사용하여 이진 이미지를 만든 다음 연결된 영역을 표시하여 각 쌀의 크기와 중심 위치를 알 수 있는 것입니다.

그러나 쌀 이미지를 자세히 살펴보면 사진 촬영 중 조명이 고르지 않아 분할을 위한 전역 임계값을 사용하기 어렵게 되어 배경의 일부가 흐려지는 현상이 발생합니다. 대상으로 인식되거나(임계값이 너무 작음) 일부 대상이 손실됩니다(임계값이 너무 큼). 불균일한 조명을 제거한 후 이진화하면 어떤 결과가 나올까요?

코드

function newIm= DUCO_RemoveBackGround(im,w,isShow)

%im: 원본 이미지 w 필터 창 크기; 프로세스

%

%

if isShow==1

그림

imshow(im,[] )

end

bk=double(im);

%1. 최소값 필터

bk=ordfilt2(bk,1 , 일(w,w),'대칭');

if isShow==1

그림

서브플롯(2,2,1)

imshow(bk,[]),title('최소값 필터링 후 결과'); %필터링된 이미지 표시

end

%2. /p>

h=ones(w,w)/(w*w);

bk=imfilter(bk,h,'replicate');

if isShow ==1

subplot(2,2,2)

imshow(bk,[]),title('평균 필터링 후 결과'); %이미지 필터링 후 표시

p>

end

%3. 균일하지 않은 밝기를 뺀 결과

newIm=imsubtract(double(im),bk);

if isShow ==1

subplot(2,2,3)

imshow(newIm,[]);title('배경 이미지 제거');

end

%4. 대상을 이진화하고 분할합니다.

th=graythresh(newIm/255);

newIm=im2bw(newIm /255,th);

if isShow==1

subplot(2,2,4)

imshow(newIm),title('바이너리 값 결과'); 필터링된 이미지

上篇: 시황촌 지하철에서 마르코 폴로교 항일전쟁기념관 가는 방법 下篇: 네이장직업기술대학 편입선
관련 내용