다음과 같이 당신이 사용하는 언어를 잘 모르겠지만, OpenCV의 C++에, 부호 요소가 구현 될 수있다 :의 코스
Mat signum(Mat src)
{
Mat dst = (src >= 0) & 1;
dst.convertTo(dst,CV_32F, 2.0, -1.0);
return dst;
}
을 반환 매트릭스는 부동 소수점 또는 서명 유형이 것 -1의 값을 격납한다
업데이트 :
는
이전 구현은 단지 1 또는 -1을 반환 입력 값에 따라, 그러나 signum 정의에 따라, 0의 출력에 0을 유지한다. 따라서 this answer에서 참조를 얻으면 OpenCV를 사용하여 표준 signum 함수를 다음과 같이 구현할 수 있습니다.
Mat signum(Mat src)
{
Mat z = Mat::zeros(src.size(), src.type());
Mat a = (z < src) & 1;
Mat b = (src < z) & 1;
Mat dst;
addWeighted(a,1.0,b,-1.0,0.0,dst, CV_32F);
return dst;
}