原图如下,我们就是先在这个视频流上添加一条直线段(有一定宽度的)
#include
using namespace cv;
int main()
{
VideoCapture capture(0);
while (1)
{
Mat frame;
capture >> frame;
//修改像素,添加直线//////////////////////
for (int i = 135; i < 455; ++i)//绘制行数
{
for (int j = 350; j < 360; ++j)//绘制列数
{
Vec3b pixel;
pixel[0] = 0;
pixel[1] = 0;
pixel[2] = 255;
frame.at(i, j) = pixel;
}
}
/////////////////////////////////////
namedWindow("视频图像");
imshow("视频图像", frame);
waitKey(30);
}
return 0;
}
视频截图如下
//修改像素,添加直线//////////////////////
for (int i = 135; i < 455; ++i)//绘制行数
{
for (int j = 350; j < 360; ++j)//绘制列数
{
Vec3b pixel;
pixel[0] = 0; //B像素
pixel[1] = 0; //G像素
pixel[2] = 255; //R像素
frame.at(i, j) = pixel; //像素修改,讲直线段部分绘制在frame图像上
}
}
基本修改像素部分也就这么些。
其中T字标准如下图(数字是像素范围,恕我懒了,应该也可以看懂)
上代码(可直接运行)
#include
using namespace cv;
int main()
{
VideoCapture capture(0);
while (1)
{
Mat frame;
capture >> frame;
Mat roi = frame(Range(120, 476), Range(180, 476));
//修改像素,添加直线//////////////////////
for (int i = 155; i < 275; ++i)//绘制行数
{
for (int j = 144; j < 150; ++j)//绘制列数
{
Vec3b pixel;
pixel[0] = 0; //B像素
pixel[1] = 0; //G像素
pixel[2] = 255; //R像素
roi.at(i, j) = pixel; //像素修改,讲直线段部分绘制在frame图像上
}
}
for (int i = 150; i < 155; ++i)//绘制行数
{
for (int j = 77; j < 217; ++j)//绘制列数
{
Vec3b pixel;
pixel[0] = 255;
pixel[1] = 0;
pixel[2] = 0;
roi.at(i, j) = pixel;
}
}
/////////////////////////////////////
namedWindow("视频图像");
imshow("视频图像", roi);
waitKey(30);
}
return 0;
}
视频截图如下
代码段如下
#include
using namespace cv;
int main()
{
VideoCapture capture(0);
while (1)
{
Mat frame;
capture >> frame;
//修改像素,添加直线//////////////////////
Point pt1(30,80);
Point pt2(450, 480);
line(frame, pt1, pt2, Scalar(0, 0, 255), 1, CV_AA);
/////////////////////////////////////
namedWindow("视频图像");
imshow("视频图像", frame);
waitKey(30);
}
return 0;
}
两点连线的代码段
如下
//修改像素,添加直线
Point pt1(30,80);
Point pt2(450, 480);
line(frame, pt1, pt2, Scalar(0, 0, 255), 1, CV_AA);
//line(frame, pt1, pt2, Scalar(0, 0, 255), 3, CV_AA);
line(frame, pt1, pt2, Scalar(0, 0, 255), 3, CV_AA);
//line(frame, pt1, pt2, Scalar(0, 0, 255), 10 CV_AA);
/////////////////////////////////////
line(frame, pt1, pt2, Scalar(0, 0, 255), 10 CV_AA);
OK,结束