怎么用opencv库画矩形
时间: 2023-07-03 13:33:36 浏览: 79
你可以使用 OpenCV 库的 `cv::rectangle` 函数来画矩形。该函数的参数包括图像、矩形的左上角和右下角坐标、矩形边框颜色和边框宽度。下面是一个简单的例子:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat img = cv::imread("image.jpg"); // 读入图片
cv::Rect rect(100, 100, 200, 150); // 定义矩形,左上角坐标为(100, 100),宽为200,高为150
cv::rectangle(img, rect, cv::Scalar(0, 0, 255), 2); // 画矩形,颜色为红色,宽度为2像素
cv::imshow("image", img); // 显示图片
cv::waitKey(0); // 等待按键
return 0;
}
```
在这个例子中,我们首先用 `cv::imread` 函数读入一张图片,然后定义一个矩形,接着用 `cv::rectangle` 函数画出这个矩形,并将结果显示出来。
相关问题
opencv 识别矩形java_使用OpenCV进行矩形检测/跟踪
好的,我了解了你的问题。以下是使用OpenCV进行矩形检测/跟踪的Java代码示例:
首先,您需要导入OpenCV库并加载图像。您可以使用以下代码:
```
//导入OpenCV库
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
//加载图像
Mat image = Imgcodecs.imread("path/to/image.jpg");
```
接下来,您可以使用CascadeClassifier类来加载预训练的分类器,并使用detectMultiScale方法来检测矩形。以下是示例代码:
```
//加载分类器
CascadeClassifier classifier = new CascadeClassifier("path/to/classifier.xml");
//检测矩形
MatOfRect rectangles = new MatOfRect();
classifier.detectMultiScale(image, rectangles);
```
最后,您可以使用以下代码在图像上绘制矩形:
```
//绘制矩形
for (Rect rect : rectangles.toArray()) {
Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0), 2);
}
//显示图像
Imgcodecs.imwrite("path/to/output.jpg", image);
```
这将在图像上绘制矩形,并将结果保存到输出文件中。希望这可以帮助您。
用c++使用opencv画矩形
以下是一个用C++编写的使用OpenCV画矩形的程序:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 读取图像
Mat img = imread("example.jpg");
// 定义矩形的顶点坐标
Point pt1(100, 100);
Point pt2(200, 200);
// 绘制矩形
rectangle(img, pt1, pt2, Scalar(0, 255, 0), 2);
// 显示图像
imshow("image", img);
waitKey(0);
destroyAllWindows();
return 0;
}
```
这个程序使用了OpenCV的 `Mat` 类型来读取图像,并使用 `rectangle()` 函数画出了一个矩形。需要注意的是,OpenCV中的矩形坐标是用 `Point` 类型表示的,所以我们需要使用 `Point` 类型来定义矩形的顶点坐标。最后,我们使用 `imshow()` 函数显示图像,并使用 `waitKey()` 函数等待用户按下按键后再关闭窗口。
阅读全文