您好,欢迎访问一九零五行业门户网

如何使用Java OpenCV库绘制图像轮廓?

轮廓只不过是沿着特定形状边界连接所有点的线。使用它,您可以 -
查找对象的形状。
计算对象的面积.
检测物体。
识别物体。
您可以使用findcontours()方法找到图像中各种形状、物体的轮廓。以同样的方式,您可以绘制您可以使用 drawcontours() 方法绘制找到的图像轮廓,该方法接受以下参数 -
用于存储结果图像的空 mat 对象。
包含找到的轮廓的列表对象。
一个整数值,指定要绘制的轮廓(-ve 值用于绘制所有轮廓)。
一个标量对象,用于指定轮廓的颜色.
指定轮廓粗细的整数值。
示例import java.util.arraylist;import java.util.list;import org.opencv.core.core;import org.opencv.core.mat;import org.opencv.core.matofpoint;import org.opencv.core.point;import org.opencv.core.scalar;import org.opencv.highgui.highgui;import org.opencv.imgcodecs.imgcodecs;import org.opencv.imgproc.imgproc;public class drawingcontours { public static void main(string args[]) throws exception { //loading the opencv core library system.loadlibrary( core.native_library_name ); string file ="d:\images\shapes.jpg"; mat src = imgcodecs.imread(file); //converting the source image to binary mat gray = new mat(src.rows(), src.cols(), src.type()); imgproc.cvtcolor(src, gray, imgproc.color_bgr2gray); mat binary = new mat(src.rows(), src.cols(), src.type(), new scalar(0)); imgproc.threshold(gray, binary, 100, 255, imgproc.thresh_binary_inv); //finding contours list<matofpoint> contours = new arraylist<>(); mat hierarchey = new mat(); imgproc.findcontours(binary, contours, hierarchey, imgproc.retr_tree, imgproc.chain_approx_simple); //drawing the contours scalar color = new scalar(0, 0, 255); imgproc.drawcontours(src, contours, -1, color, 2, imgproc.line_8, hierarchey, 2, new point() ) ; highgui.imshow("drawing contours", src); highgui.waitkey(); }}
输入图片
输出执行时,上述程序生成以下窗口 -
以上就是如何使用java opencv库绘制图像轮廓?的详细内容。
其它类似信息

推荐信息