java opencv 截取一个范围
时间: 2023-07-01 19:19:11 浏览: 98
opencv区域提取
要在Java中使用OpenCV截取一个范围,可以按照以下步骤进行操作:
1. 读取图像:使用OpenCV读取图像,并将其存储在Mat对象中。
2. 定义范围:使用Rect对象定义要截取的范围。
3. 截取范围:使用Mat对象的submat()方法,将指定范围的图像截取出来。
下面是示例代码:
```java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ImageCrop {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
// 读取图像
Mat src = Imgcodecs.imread("image.jpg");
// 定义范围
Rect roi = new Rect(100, 100, 200, 200);
// 截取范围
Mat crop = new Mat(src, roi);
// 在原图上绘制矩形框
Imgproc.rectangle(src, roi, new Scalar(0, 0, 255), 2);
// 显示结果
HighGui.imshow("Original Image", src);
HighGui.imshow("Cropped Image", crop);
HighGui.waitKey();
}
}
```
在上述代码中,我们首先使用Imgcodecs.imread()方法读取图像。然后,我们使用Rect对象定义要截取的范围。接下来,我们使用Mat对象的submat()方法将指定范围的图像截取出来,并将结果存储在新的Mat对象中。最后,我们在原图上绘制矩形框以显示截取的范围,并使用HighGui.imshow()方法显示原始图像和截取后的图像。
阅读全文