目标
我们将学习在 OpenCV 中进行绘制操作,我们的目标包括:
- 绘制直线。使用 line() 函数。
绘制直线
Draws a line segment connecting two points.
头文件
#include <opencv2/imgproc.hpp>
原型
C++/Java
void cv::line(InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0)
Python:
img = cv.line( img, pt1, pt2, color[, thickness[, lineType[, shift]]] )
输入参数
| img | Image. |
| pt1 | First point of the line segment. |
| pt2 | Second point of the line segment. |
| color | Line color. |
| thickness | Line thickness. |
| lineType | Type of the line. See LineTypes. |
| shift | Number of fractional bits in the point coordinates. |
例子
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#define w 400
using namespace cv;
void MyLine(Mat img, Point start, Point end);
int main( void ){
char atom_window[] = "Drawing 1: Atom";
char rook_window[] = "Drawing 2: Rook";
Mat rook_image = Mat::zeros( w, w, CV_8UC3 );
MyLine( rook_image, Point( 0, 15*w/16 ), Point( w, 15*w/16 ) );
MyLine( rook_image, Point( w/4, 7*w/8 ), Point( w/4, w ) );
MyLine( rook_image, Point( w/2, 7*w/8 ), Point( w/2, w ) );
MyLine( rook_image, Point( 3*w/4, 7*w/8 ), Point( 3*w/4, w ) );
imshow( atom_window, atom_image );
waitKey( 0 );
return 0;
}
void MyLine( Mat img, Point start, Point end ) {
int thickness = 2;
int lineType = LINE_8;
line( img,
start,
end,
Scalar( 0, 0, 0 ),
thickness,
lineType );
}
本文将指导你如何在OpenCV中使用line()函数绘制直线。通过详细解析函数参数,包括点坐标、颜色、厚度等,以及提供C++和Python的代码示例,帮助读者掌握基本的图像处理技能。
2951

被折叠的 条评论
为什么被折叠?



