이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

imnoise

영상에 잡음 추가

구문

J = imnoise(I,'gaussian')
J = imnoise(I,'gaussian',m)
J = imnoise(I,'gaussian',m,var_gauss)
J = imnoise(I,'localvar',var_local)
J = imnoise(I,'localvar',intensity_map,var_local)
J = imnoise(I,'poisson')
J = imnoise(I,'salt & pepper')
J = imnoise(I,'salt & pepper',d)
J = imnoise(I,'speckle')
J = imnoise(I,'speckle',var_speckle)
gpuarrayJ = imnoise(gpuarrayI,___)

설명

J = imnoise(I,'gaussian')은 분산 0.01과 평균 0의 가우스 백색 잡음을 회색조 영상 I에 추가합니다.

J = imnoise(I,'gaussian',m)은 평균 m과 분산 0.01의 가우스 백색 잡음을 추가합니다.

J = imnoise(I,'gaussian',m,var_gauss)는 평균 m과 분산 var_gauss의 가우스 백색 잡음을 추가합니다.

J = imnoise(I,'localvar',var_local)은 국소 분산 var_local과 평균 0의 가우스 백색 잡음을 추가합니다.

J = imnoise(I,'localvar',intensity_map,var_local)은 평균 0의 가우스 백색 잡음을 추가합니다. 잡음의 국소 분산 var_localI의 영상 명암 값에 대한 함수입니다. 잡음 분산에 대한 영상 명암 값의 매핑은 벡터 intensity_map으로 지정됩니다.

J = imnoise(I,'poisson')은 데이터에 인공 잡음을 추가하는 대신, 데이터에서 푸아송 잡음을 생성합니다. 자세한 내용은 알고리즘 항목을 참조하십시오.

J = imnoise(I,'salt & pepper')는 디폴트 잡음 밀도가 0.05인 점잡음(Salt and Pepper Noise)을 추가합니다. 이는 대략 픽셀의 5%에 영향을 줍니다.

예제

J = imnoise(I,'salt & pepper',d)는 점잡음을 추가합니다. 여기서 d는 잡음 밀도입니다. 이는 대략 d*numel(I)개의 픽셀에 영향을 줍니다.

J = imnoise(I,'speckle')은 수식 J = I+n*I를 사용하여 승산 잡음을 추가합니다. 여기서 n은 평균 0과 분산 0.04의 균일하게 분포된 랜덤 잡음입니다.

J = imnoise(I,'speckle',var_speckle)은 분산 var_speckle의 승산 잡음을 추가합니다.

gpuarrayJ = imnoise(gpuarrayI,___)는 GPU에서 연산을 수행하여 gpuArray 명암 영상 gpuarrayI에 잡음을 추가합니다. 이 구문을 사용하려면 Parallel Computing Toolbox™가 필요합니다.

예제

영상에 잡음 추가하기

회색조 영상을 읽어 들인 후 이를 표시합니다.

I = imread('eight.tif');
imshow(I)

잡음 밀도가 0.02인 점잡음(Salt and Pepper Noise)을 영상에 추가합니다. 결과를 표시합니다.

J = imnoise(I,'salt & pepper',0.02);
imshow(J)

GPU에서 연산을 수행하여 영상에 잡음 추가하기

I = gpuArray(imread('eight.tif'));
J = imnoise(I,'salt & pepper', 0.02);

figure, imshow(I);
figure, imshow(J);

입력 인수

모두 축소

회색조 영상으로, 숫자형 행렬로 지정됩니다. I의 차원이 2차원을 넘을 경우, 이 영상은 RGB 영상이 아닌 다차원 명암 영상으로 처리됩니다.

참고

푸아송 잡음인 경우 데이터형이 int16인 영상은 허용되지 않습니다.

데이터형: single | double | int16 | uint8 | uint16

가우스 잡음의 평균으로, 숫자형 스칼라로 지정됩니다.

가우스 잡음의 분산으로, 숫자형 스칼라로 지정됩니다.

가우스 잡음의 국소 분산으로, 다음 중 하나로 지정됩니다.

  • I와 크기가 동일한 숫자형 행렬.

  • intensity_map과 길이가 동일한 숫자형 벡터.

가우스 잡음 분산에 매핑된 명암 값으로, 숫자형 벡터로 지정됩니다. 이 값들은 범위 [0, 1]로 정규화됩니다.

잡음 분산 var_local과 영상 명암 간의 함수 관계를 명령 plot(intensity_map,var_local)을 사용하여 플로팅할 수 있습니다.

점잡음(Salt and Pepper Noise)의 잡음 밀도로, 숫자형 스칼라로 지정됩니다. 잡음은 대략 d*numel(I)개의 픽셀에 적용됩니다.

승산 잡음의 분산으로, 숫자형 스칼라로 지정됩니다.

GPU에서 실행될 경우의 회색조 영상으로, gpuArray로 지정됩니다. 배열 요소에 대한 자세한 정보는 I를 참조하십시오.

출력 인수

모두 축소

잡음이 있는 영상으로, 입력 영상 I와 데이터형이 동일한 숫자형 행렬로 반환됩니다.

GPU에서 실행될 경우의 잡음이 있는 영상으로, gpuArray로 지정됩니다. 배열 요소에 대한 자세한 내용은 J를 참조하십시오.

알고리즘

  • 'gaussian', 'localvar', 'speckle' 잡음 유형의 평균 파라미터와 분산 파라미터는 영상을 항상 범위 [0, 1]의 double형 클래스로 가정하여 지정됩니다. 입력 영상의 클래스가 다르면, imnoise 함수는 영상을 double형으로 변환하고, 지정된 유형과 파라미터에 따라 잡음을 추가한 다음, 잡음이 있는 영상을 다시 입력값과 같은 클래스로 변환합니다.

  • 푸아송 분포는 다음과 같이 입력 영상 I의 데이터형에 따라 달라집니다.

    • I가 배정밀도이면, 입력 픽셀 값은 1e12배로 확대 스케일링된 푸아송 분포의 평균으로 해석됩니다. 예를 들어, 입력 픽셀 값이 5.5e-12이면, 해당 출력 픽셀은 평균 5.5의 푸아송 분포에서 생성된 후 1e12배로 다시 축소 스케일링됩니다.

    • I가 단정밀도이면, 사용되는 스케일링 인자는 1e6입니다.

    • Iuint8형이거나 uint16형이면, 입력 픽셀 값은 스케일링 없이 바로 사용됩니다. 예를 들어, uint8형 입력값에서 픽셀 값이 10이면, 대응하는 출력 픽셀은 평균 10의 푸아송 분포에서 생성됩니다.

참고 항목

| |

R2006a 이전에 개발됨