opencv 外接矩形 java实现
时间: 2023-07-07 18:39:28 浏览: 76
在Java中使用OpenCV实现外接矩形可以按照以下步骤进行:
1. 导入OpenCV库和相关的Java类库。
```
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
```
2. 读入图像并进行灰度化处理。
```
Mat src = Imgcodecs.imread("path/to/image.jpg");
Mat gray = new Mat();
Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
```
3. 对图像进行二值化处理。
```
Mat binary = new Mat();
Imgproc.threshold(gray, binary, 0, 255, Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU);
```
4. 进行轮廓检测,并获取轮廓的外接矩形。
```
List<MatOfPoint> contours = new ArrayList<>();
Mat hierarchy = new Mat();
Imgproc.findContours(binary, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
for (int i = 0; i < contours.size(); i++) {
Rect rect = Imgproc.boundingRect(contours.get(i));
Imgproc.rectangle(src, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0), 2);
}
```
5. 显示处理后的图像。
```
Imgcodecs.imwrite("path/to/output.jpg", src);
```
以上代码可以实现对图像进行外接矩形的检测和绘制,其中boundingRect()方法可以获取轮廓的外接矩形,rectangle()方法用于绘制矩形框,可以根据需要自行调整绘制时的颜色和线宽。
阅读全文