public static void watershed(Mat image, Mat markers)
- 参数一:image,输入图像,必须是CV_8U三通道图像。
- 参数二:markers,输入/输出32位单通道图像的标记结果。必须与image大小相同。 在将图像传递给第二个参数之前,必须使用大于0的整数索引在图像中粗略标记出所需分割的区域。 因此,每个标记区域表示一个或多个连接分量,像素值分别用1、2、3等来表示。 我们可以通过使用
findContours
和drawContours
从二值掩码中检索此类标记。 标记是图像处理过程中的“种子”。标记图像中所有没有被标记的像素值为0。在输出图像中,两个区域之间的分割线用-1表示。
操作
/**
- 图像分割–分水岭法
- author: yidong
- 2020/11/9
*/
class WaterShedActivity : AppCompatActivity() {
private val mBinding: ActivityWaterShedBinding by lazy {
ActivityWaterShedBinding.inflate(
layoutInflater
)
}
private lateinit var mRgb: Mat
private lateinit var mGray: Mat
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(mBinding.root)
mRgb