[OpenCV рисует точки и круги на изображениях (C++)]


Предисловие

В предисловии особо рассказывать нечего.Мне просто нужно рисовать точки и круги при работе над проектом.Если научусь это делать,запишу сюда(на самом деле это было очень давно,и это всегда был в драфте.Мне лень). Пожалуйста, внесите изменения в соответствии с вашей реальной ситуацией. Это версия C++. Python на самом деле не слишком отличается. Я разберусь с этим позже.


1. Введение заголовочных файлов

#include<iostream>//取决于你的实际需要
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>//这个头文件是与图像处理有关的必须的
/*以下是我对命名空间的习惯*/
using namespace std;
using namespace cv;

Я забыл это предложение в начале, #include<opencv2/imgproc/imgproc.hpp>, но оказалось, что в opencv нет функции круга, что немного смешно, а к заголовочному файлу все равно нужно относиться серьезно.

2. Нарисуйте на изображении круги и точки.

1. Ключевые функции

circle(image2, points2, 3, Scalar(255, 0, 120), 30);//画圆,空心的
circle(image1, points1, 3, Scalar(0, 255, 120), -1);//画点,其实就是实心圆

круг (холст, координаты центральной точки, размер, цвет, радиус -1 — сплошной круг). Здесь много места для игр, и его можно изменить в соответствии с реальными потребностями.

2. Приведите пример

Его нельзя использовать напрямую! ! ! , просто измените его, как и раньше. Ниже приведен лишь пример. Это небрежно, и от него невозможно избавиться! ! !
код показан ниже:

#include<iostream>//取决于你的实际需要
#include<vector>
#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>//这个头文件是与图像处理有关的必须的
/*以下是我对命名空间的习惯*/
using namespace std;
using namespace cv;
int main(){
    
    
	Mat image1 = imread("./1.png", 1);//路径根据自己的改
	vector<Point2f> points1;
	/*我的图是640*480的,所以以下生成点注意一下数据范围
	.......
	生成点懒得写了,我用的时候是keypoint转的,要自己造的话,参考这句
	points1.push_back(Point2f(2, 3));  
	*/
	for(i = 0; i < points1.size(); i++){
    
    
		circle(image1, points1[i], 3, Scalar(0, 255, 120), -1);//画点,其实就是实心圆
	}
	imshow("PointsinImage", image1);
	waitKey(0);//敲键盘关图片,别直接×
	return 0;
}

Сплошная картина будет выглядеть так:
заполненный круг


Подведем итог

Подводить итоги нечего, поэтому встреча окончена, если обнаружится ошибка, сообщите об этом в комментариях.

おすすめ

転載: blog.csdn.net/MFL_xiaotaiye/article/details/125060003
おすすめ