android opencv截取轮廓图片
时间: 2023-07-18 11:22:51 浏览: 163
要在 Android OpenCV 中截取轮廓图片,可以按照以下步骤进行操作:
1. 加载图像并将其转换为灰度图像。
```java
Mat img = Imgcodecs.imread(imagePath);
Mat grayImg = new Mat();
Imgproc.cvtColor(img, grayImg, Imgproc.COLOR_BGR2GRAY);
```
2. 对图像进行阈值处理,将其转换为二值图像。
```java
Mat binaryImg = new Mat();
Imgproc.threshold(grayImg, binaryImg, threshold, 255, Imgproc.THRESH_BINARY);
```
其中 threshold 是阈值值,可以根据具体情况调整。
3. 查找轮廓并绘制轮廓。
```java
List<MatOfPoint> contours = new ArrayList<>();
Mat hierarchy = new Mat();
Imgproc.findContours(binaryImg, contours, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);
Mat contourImg = new Mat();
contourImg.create(binaryImg.size(), binaryImg.type());
Imgproc.drawContours(contourImg, contours, -1, new Scalar(255, 255, 255), -1);
```
4. 截取轮廓部分的图片。
```java
Rect rect = Imgproc.boundingRect(contours.get(0));
Mat croppedImg = new Mat(img, rect);
```
其中 contours.get(0) 是第一个轮廓,可以根据实际情况选择需要截取的轮廓。
最后,可以将截取到的图片保存到本地。
```java
Imgcodecs.imwrite(outputPath, croppedImg);
```
以上就是在 Android OpenCV 中截取轮廓图片的基本步骤。
阅读全文