Javascript 이미지 처리 - 임계값 함수 예제 application_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:44:43
원래의
1536명이 탐색했습니다.
머리말

이전 글에서는 영상 처리 시 밝기와 대비의 변화에 ​​대해 설명했습니다. 이번 글에서는 임계값 함수를 만들어 보겠습니다.

가장 간단한 이미지 분할 방법

임계값은 가장 간단한 이미지 분할 방법입니다.

예를 들어 아래 그림에서 사과를 분할하기 위해 전경과 배경의 회색조 차이를 사용하여 임계값을 설정합니다. 픽셀이 이 임계값보다 크면 검은색으로 표시됩니다. 임계값보다 작으면 회색으로 표시됩니다.

Threshold simple example
5가지 임계값 유형

OpenCV와 마찬가지로 쉽게 사용할 수 있도록 5가지 임계값 유형을 제공합니다.

다음은 원본 이미지의 파형 표현입니다. 세로 좌표는 픽셀의 회색 값을 나타내고 파란색 선은 임계값 크기를 나타냅니다.

Threshold Binary

바이너리 임계값

공식은 다음과 같습니다.

texttt{dst} (x,y) = fork{texttt{maxVal}}{if $texttt{src}(x,y) > texttt{thresh}$}{0}{otherwise}

이미지 표현은 다음과 같습니다.

Threshold Binary

임계값을 초과하면 최대값(즉, 255)이 되고, 초과하면 최소값(즉, 0)이 되는 것을 알 수 있다. 이 기능을 구현하려면 함수가 필요합니다.

코드 복사 코드는 다음과 같습니다.

var CV_THRESH_BINARY = function(__value, __thresh, __maxVal){
return __value > __thresh ? __maxVal : 0;
};

역 바이너리 임계값

공식은 다음과 같습니다.

texttt{dst} (x,y) = fork{0}{if $texttt{src}(x,y) > texttt{thresh}$}{texttt{maxVal}}{otherwise}

이미지 표현은 다음과 같습니다.

Threshold Binary Inverted

이것은 반대입니다. 임계값을 초과하면 최소값이 되고, 초과하면 최대값이 됩니다. 함수 구현은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var CV_THRESH_BINARY_INV = function(__value, __thresh, __maxVal){
return __value > __thresh ? 0 : __maxVal;


임계값 자르기

공식은 다음과 같습니다.

texttt{thresh}$}{texttt{src}(x,y)}{otherwise}" src="http://files.jb51.net/file_images/article/201301/2013010314344057.png" >texttt{dst} (x,y) = fork{texttt{threshold}}{if $texttt{src}(x,y) >
</P>이미지 표현은 다음과 같습니다. <P>
</P><P><IMG class=align-center style=

임계값을 초과하면 잘린 것을 볼 수 있습니다. 함수 구현은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
var CV_THRESH_TRUNC = function(__value, __thresh, __maxVal){
return __value > __thresh ? __thresh : 0


임계값 0

공식은 다음과 같습니다.

texttt{dst} (x,y) = fork{texttt{src}(x,y)}{if $texttt{src}(x,y) > texttt{thresh}$}{0}{otherwise}

이미지 표현은 다음과 같습니다.

Threshold Zero

이 경우 임계값보다 작은 값은 모두 0으로 설정됩니다. 기능 구현:

코드 복사 코드는 다음과 같습니다.

var CV_THRESH_TOZERO = function(__value, __thresh, __maxVal){
__value 반환 >


공식은 다음과 같습니다. texttt{thresh}$}{texttt{src}(x,y)}{otherwise}" src="http://files.jb51.net/file_images/article/201301/2013010314344061.png" >

이미지 표현은 다음과 같습니다.

texttt{dst} (x,y) = fork{0}{if $texttt{src}(x,y) >임계값을 초과하면 0으로 설정됩니다. 함수 구현은 </P><P></P><P><IMG class=align-center style=코드 복사


코드는 다음과 같습니다. :

임계값 처리 기능 구현



그런 다음 전체 이미지에 대해 위 유형의 임계값 처리를 수행하는 함수를 만듭니다.

코드 복사


코드는 다음과 같습니다.

sData = __src.data,
dst = __dst || new Mat(height, width, CV_GRAY),
dData = dst.data,
maxVal = __maxVal || 255,
threshouldType = __thresholdType || CV_THRESH_BINARY;

var i, j, offset; height; i --;){
for(j = width; j--;){
offset = i * width j
dData[offset] = threshouldType(sData[offset], __thresh, maxVal);
}
}

}else{
error(arguments.callee, UNSPPORT_DATA_TYPE/* {line} */)
}

return dst;
};


이 함수는 비교적 간단합니다. 즉,




코드 복사

코드는 다음과 같습니다.


threshouldType(sData[offset], __thresh, maxVal)
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿