Mat img =Imgcodecs.imread(path);
Mat src = new Mat();
Imgproc.cvtColor(img, src, Imgproc.COLOR_BGR2GRAY);
Imgproc.threshold(src, src, 127, 255, Imgproc.THRESH_TOZERO);
Imgproc.Canny(src, src, 10,100, 3,true);
ArrayList<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Imgproc.findContours(src, contours, new Mat(), Imgproc.RETR_LIST,Imgproc.CHAIN_APPROX_SIMPLE);
Mat contourImg = new Mat(img.size(), img.type());
Point p= new Point(150,260);
for (int i = 0; i < contours.size(); i++) {
Imgproc.drawContours(contourImg, contours, i, new Scalar(0, 0, 255), -1);
}
当我点击椭圆区域的任何位置时,如何更改红色椭圆的颜色? 我可以通过鼠标点击获得x和y坐标,但我无法操作“边界跟踪”。这是我写的代码;
答案 0 :(得分:0)
如果您具有椭圆边界的轮廓坐标,则可以使用多边形测试中的点来检查鼠标的x,y是否在椭圆内。
在opencv中,它是函数pointPolygonTest http://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/point_polygon_test/point_polygon_test.html