我正在尝试将遮罩应用于照片:
Mat img = Highgui.imread( "/path/to/my/image.png" );
Mat mask = new Mat( new Size( img.cols(), img.rows() ), CvType.CV_8UC1 );
mask.setTo( new Scalar( 0.0 ) );
// Rect r = ...;
Core.ellipse( mask, new Point( r.x + ( r.width / 2 ), r.y + ( r.height / 2 ) ), new Size( r.width / 2, ( r.height ) / 2 ), 0.0, 0.0, 360.0, new Scalar( 255.0 ), 5 );
// Mat res = ...;
img.copyTo( res, mask );
但是我总是以res包含与img完全相同的图像...
答案 0 :(得分:2)
图片示例:
Mat mask = new Mat(src.rows(), src.cols(), CvType.CV_8U, Scalar.all(0));
Imgproc.ellipse( mask,
new Point( src.rows() / 2, src.cols() / 2 ),
new Size( src.rows() / 3, src.cols() / 5 ),
70.0,
0.0,
360.0,
new Scalar( 255, 255, 255 ),
-1,
8,
0 );
Mat cropped = new Mat();
src.copyTo( cropped, mask );