本文整理汇总了Java中org.opencv.imgproc.Imgproc.floodFill方法的典型用法代码示例。如果您正苦于以下问题:Java Imgproc.floodFill方法的具体用法?Java Imgproc.floodFill怎么用?Java Imgproc.floodFill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.opencv.imgproc.Imgproc
的用法示例。
在下文中一共展示了Imgproc.floodFill方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: RectangleSubROI
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static Mat RectangleSubROI(Mat input, Rect rect) {
final Mat maskCopyTo = Mat.zeros(input.size(), CvType.CV_8UC1); // ����copyTo������mask����С��ԭͼ����һ��
// floodFill��mask��width��height�����������ͼ��������������أ��������ᱨ��
final Mat maskFloodFill = Mat.zeros(new Size(input.cols() + 2, input.rows() + 2), CvType.CV_8UC1); // ����floodFill������mask���ߴ��ԭͼ��һЩ
// Imgproc.circle(maskCopyTo, new Point(cc.x, cc.y), radius, Scalar.all(255), 2,
// 8, 0); // ����Բ������
Imgproc.rectangle(maskCopyTo, rect.tl(), rect.br(), Scalar.all(255), 2, 8, 0);
Imgproc.floodFill(maskCopyTo, maskFloodFill,
new Point((rect.tl().x + rect.br().x) / 2, (rect.tl().y + rect.br().y) / 2), Scalar.all(255), null,
Scalar.all(20), Scalar.all(20), 4); // ��ˮ��䷨���Բ���ڲ�
// MatView.imshow(maskFloodFill, "Mask of floodFill"); // ����floodFill������mask
// MatView.imshow(maskCopyTo, "Mask of copyTo"); // ����copyTo������mask
final Mat imgRectROI = new Mat();
input.copyTo(imgRectROI, maskCopyTo); // ��ȡԲ�ε�ROI
// MatView.imshow(imgCircularROI, "Circular ROI"); // ��ʾԲ�ε�ROI
return imgRectROI;
}
示例2: Circle
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static Mat Circle(Mat circularInput, Point cc, int radius) {
final Mat maskCopyTo = Mat.zeros(circularInput.size(), CvType.CV_8UC1); // ����copyTo������mask����С��ԭͼ����һ��
// floodFill��mask��width��height�����������ͼ��������������أ��������ᱨ��
final Mat maskFloodFill = Mat.zeros(new Size(circularInput.cols() + 2, circularInput.rows() + 2),
CvType.CV_8UC1); // ����floodFill������mask���ߴ��ԭͼ��һЩ
Imgproc.circle(maskCopyTo, new Point(cc.x, cc.y), radius, Scalar.all(255), 2, 8, 0); // ����Բ������
Imgproc.floodFill(maskCopyTo, maskFloodFill, new Point(207, 290), Scalar.all(255), null, Scalar.all(20),
Scalar.all(20), 4); // ��ˮ��䷨���Բ���ڲ�
// MatView.imshow(maskFloodFill, "Mask of floodFill"); // ����floodFill������mask
// MatView.imshow(maskCopyTo, "Mask of copyTo"); // ����copyTo������mask
final Mat imgCircularROI = new Mat();
circularInput.copyTo(imgCircularROI, maskCopyTo); // ��ȡԲ�ε�ROI
// MatView.imshow(imgCircularROI, "Circular ROI"); // ��ʾԲ�ε�ROI
return imgCircularROI;
}
示例3: irregularQuadrangle_Simplified
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static Mat irregularQuadrangle_Simplified(Mat irrInput, Point p1, Point p2, Point p3, Point p4,
double shift_x, double shift_y, boolean noULandLRcorner, double ulCornerRatio, double lrCornerRatio) {
final Mat maskCopyTo = Mat.zeros(irrInput.size(), CvType.CV_8UC1); // ����copyTo������mask����С��ԭͼ����һ��
// �����ĵ���Ϊ��ʼ����
final double centerX = (p1.x + p2.x + p3.x + p4.x) / 4;
final double centerY = (p1.y + p2.y + p3.y + p4.y) / 4;
final Point cc = new Point(centerX, centerY);
final List<MatOfPoint> counter = new ArrayList<>();
final Point aP1 = new Point(p1.x + shift_x, p1.y + shift_y);
final Point aP2 = new Point(p2.x - shift_x, p2.y + shift_y);
final Point aP3 = new Point(p3.x + shift_x, p3.y - shift_y);
final Point aP4 = new Point(p4.x - shift_x, p4.y - shift_y);
if (noULandLRcorner) {
final Point aP1L = new Point(aP1.x, aP1.y + (aP3.y - aP1.y) * ulCornerRatio);
final Point aP1R = new Point(aP1.x + (aP2.x - aP1.x) * ulCornerRatio, aP1.y);
final Point aP4L = new Point(aP4.x - (aP4.x - aP3.x) * lrCornerRatio, aP4.y);
final Point aP4R = new Point(aP4.x, aP4.y - (aP4.y - aP2.y) * lrCornerRatio);
counter.add(new MatOfPoint(aP1L, aP1R, aP2, aP4R, aP4L, aP3)); // ����һ��������Ķ���Σ�û�����ϽǺ����½�
} else
counter.add(new MatOfPoint(aP1, aP2, aP4, aP3)); // ����һ��������Ķ����
// floodFill��mask��width��height�����������ͼ��������������أ��������ᱨ��
Imgproc.drawContours(maskCopyTo, counter, -1, Scalar.all(255)); // ��������
// MatView.imshow(maskCopyTo, "Irregular shape edge");
final Mat maskFloodFill = new Mat(irrInput.rows() + 2, irrInput.cols() + 2, CvType.CV_8UC1); // ����floodFill������mask���ߴ��ԭͼ��һЩ
Imgproc.floodFill(maskCopyTo, maskFloodFill, new Point(centerX, centerY), Scalar.all(255), null, Scalar.all(20),
Scalar.all(20), 4); // ��ˮ��䷨����ڲ�
// MatView.imshow(maskFloodFill, "Irregular shape��Mask of floodFill"); //
// ����copyTo������mask
// MatView.imshow(maskCopyTo, "Irregular shape��Mask of copyTo"); //
// ����floodFill������mask
final Mat imgIrregularROI = new Mat();
irrInput.copyTo(imgIrregularROI, maskCopyTo); // ��ȡ��������״��ROI
// MatView.imshow(imgIrregularROI, "Irregular shape ROI");
return imgIrregularROI;
}
示例4: fillContour
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static void fillContour(Mat im, List<Point> contour, Point seed) {
Mat mask = Mat.zeros(new Size(im.width() + 2, im.height() + 2), CvType.CV_8UC1);
int len = contour.size();
for (int i = 0; i < len; ++i) {
int next_i = (i + 1) % len;
Imgproc.line(im, contour.get(i), contour.get(next_i), Util.SCALAR_WHITE, 2);
}
Imgproc.floodFill(im, mask, seed, Util.SCALAR_WHITE);
}
示例5: fillContours
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static Mat fillContours(Size size, List<MatOfPoint> contours, Point[] seeds) {
Mat im = Mat.zeros(size, CvType.CV_8U);
Mat mask = Mat.zeros(new Size(size.width + 2, size.height + 2), CvType.CV_8U);
for (int ind = 0; ind < contours.size(); ++ind) {
Imgproc.drawContours(mask, contours, ind, Util.SCALAR_WHITE);
}
for (Point p : seeds) {
Imgproc.floodFill(im, mask, p, Util.SCALAR_WHITE);
}
return im;
}
示例6: doBackgroundRemovalFloodFill
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
private Mat doBackgroundRemovalFloodFill(Mat frame) {
Scalar newVal = new Scalar(255, 255, 255);
Scalar loDiff = new Scalar(50, 50, 50);
Scalar upDiff = new Scalar(50, 50, 50);
Point seedPoint = clickedPoint;
Mat mask = new Mat();
Rect rect = new Rect();
// Imgproc.floodFill(frame, mask, seedPoint, newVal);
Imgproc.floodFill(frame, mask, seedPoint, newVal, rect, loDiff, upDiff, Imgproc.FLOODFILL_FIXED_RANGE);
return frame;
}
示例7: irregularQuadrangle
import org.opencv.imgproc.Imgproc; //导入方法依赖的package包/类
public static Mat irregularQuadrangle(Mat irrInput, Point p1, Point p2, Point p3, Point p4, double shift,
boolean noULandLRcorner, double ulCornerRatio, double lrCornerRatio) {
final Mat maskCopyTo = Mat.zeros(irrInput.size(), CvType.CV_8UC1); // ����copyTo������mask����С��ԭͼ����һ��
final double angle = MathBox.slopeAngle(p1, p2);
// System.out.println(angle);
final double sin = Math.sin(angle);
final double cos = Math.cos(angle);
// �����ĵ���Ϊ��ʼ����
final double centerX = (p1.x + p2.x + p3.x + p4.x) / 4;
final double centerY = (p1.y + p2.y + p3.y + p4.y) / 4;
final Point cc = new Point(centerX, centerY);
final List<MatOfPoint> counter = new ArrayList<>();
final Point aP1raw = new Point(p1.x + shift, p1.y + shift);
final Point aP2raw = new Point(p2.x - shift, p2.y + shift);
final Point aP3raw = new Point(p3.x + shift, p3.y - shift);
final Point aP4raw = new Point(p4.x - shift, p4.y - shift);
final Point aP1 = MathBox.rotateAroundAPoint(cc, aP1raw, angle);
final Point aP2 = MathBox.rotateAroundAPoint(cc, aP2raw, angle);
final Point aP3 = MathBox.rotateAroundAPoint(cc, aP3raw, angle);
final Point aP4 = MathBox.rotateAroundAPoint(cc, aP4raw, angle);
if (noULandLRcorner) {
final Point aP1Lraw = new Point(aP1.x, aP1.y + (aP3.y - aP1.y) * ulCornerRatio);
final Point aP1Rraw = new Point(aP1.x + (aP2.x - aP1.x) * ulCornerRatio, aP1.y);
final Point aP4Lraw = new Point(aP4.x - (aP4.x - aP3.x) * lrCornerRatio, aP4.y);
final Point aP4Rraw = new Point(aP4.x, aP4.y - (aP4.y - aP2.y) * lrCornerRatio);
final Point aP1L = MathBox.rotateAroundAPoint(cc, aP1Lraw, angle);
final Point aP1R = MathBox.rotateAroundAPoint(cc, aP1Rraw, angle);
final Point aP4L = MathBox.rotateAroundAPoint(cc, aP4Lraw, angle);
final Point aP4R = MathBox.rotateAroundAPoint(cc, aP4Rraw, angle);
counter.add(new MatOfPoint(aP1L, aP1R, aP2, aP4R, aP4L, aP3)); // ����һ��������Ķ���Σ�û�����ϽǺ����½�
} else
counter.add(new MatOfPoint(aP1, aP2, aP4, aP3)); // ����һ��������Ķ����
// floodFill��mask��width��height�����������ͼ��������������أ��������ᱨ��
Imgproc.drawContours(maskCopyTo, counter, -1, Scalar.all(255)); // ��������
MatView.imshow(maskCopyTo, "Irregular shape edge");
final Mat maskFloodFill = new Mat(irrInput.rows() + 2, irrInput.cols() + 2, CvType.CV_8UC1); // ����floodFill������mask���ߴ��ԭͼ��һЩ
Imgproc.floodFill(maskCopyTo, maskFloodFill, new Point(centerX, centerY), Scalar.all(255), null, Scalar.all(20),
Scalar.all(20), 4); // ��ˮ��䷨����ڲ�
// MatView.imshow(maskFloodFill, "Irregular shape��Mask of floodFill"); //
// ����copyTo������mask
// MatView.imshow(maskCopyTo, "Irregular shape��Mask of copyTo"); //
// ����floodFill������mask
final Mat imgIrregularROI = new Mat();
irrInput.copyTo(imgIrregularROI, maskCopyTo); // ��ȡ��������״��ROI
// MatView.imshow(imgIrregularROI, "Irregular shape ROI");
return imgIrregularROI;
}