Одно из решений:
MatOfPoint contoursIntersection( Mat ref, MatOfPoint cnt1, MatOfPoint cnt2) {
MatOfPoint intersec = new MatOfPoint();
Mat blackImage = new Mat();
ref.copyTo( blackImage);
blackImage.setTo( new Scalar( 0, 0, 0));
List<MatOfPoint> coll = new ArrayList<MatOfPoint>();
coll.add(cnt1);
coll.add(cnt2);
Imgproc.drawContours(blackImage, coll, 0, new Scalar(255,0,0), Core.FILLED);
Imgproc.drawContours(blackImage, coll, 1, new Scalar(255,0,0), Core.FILLED);
//Imgproc.fillPoly( blackImage, coll, new Scalar(0,0,255));
blackImage.copyTo( frameIntersection);
Imgproc.cvtColor( blackImage, blackImage, Imgproc.COLOR_BGR2GRAY);
List<MatOfPoint> contours = new ArrayList< MatOfPoint>();
Mat hierarchy = new Mat();
Imgproc.findContours( blackImage, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE );
System.out.println("===== contoursIntersection > number = " + contours.size());
if (contours.size() == 1) {
intersec = contours.get(0);
}
return intersec;