您的位置:首页 > 运维架构

【毕设】opencv点滴-阈值分割(Threshold)

2015-11-08 13:13 183 查看
opencv4java里面有一个阈值分割方法:

Imgproc.threshold(grayMat, thresholdMat, 0, 255, Imgproc.THRESH_TRUNC);其中这个threshold()具体如下:
public static double threshold(Mat src,
Mat dst,
double thresh,
double maxval,
int type)

第一二个参数src和dst不用多说,就是原位图转成的Mat和原位图要转成的Mat

第三个参数thresh是一个阈值点,这个点的设置将影响你的分割效果。

第四个参数maxval是最大值要设置成多少,比如二值化的话,最大值肯定是255,小于thresh的都是0,大于thresh的都是255。

第五个参数是类型参数,类型有默认的五种:

THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV

引用《Learning OpenCV》里的一张图:

第五个参数:

1.如果是THRESH_BINARY的话,就是二值化,从thresh为阈值进行判断每个像素点该归maxval还是0。

2.如果是THRESH_BINARY_INV的话,是反向二值化,从图中也可以看的出来,跟THRESH_BINARY是相反的。

3.如果是THRESH_TRUNC的话,“trunc”的意思是“裁剪、修剪”的意思,那么就是超过thresh的都等于tresh,不超过的等于原图像素点值。只针对超过thresh的像素点。

4.如果是THRESH_TOZERO的话,大于tresh的像素点维持原图像素值,小于的都为0。

5.如果是THRESH_TOZERO_INV的话,与4相反。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: