OpenCV--绘图操作
2013-04-09 15:02
197 查看
一、绘图操作---画抛物线
二.绘图操作-画圆
效果如图所示:
其中可以通过把线的粗细设置为-1来画实心的图形
void parabola(IplImage *image, CvPoint pL, CvPoint pM, CvPoint pR, const CvScalar &color, int thickness) { double x1, y1, x2, y2, x3, y3, a, b, c; x1 = (double)pL.x; y1 = (double)pL.y; x2 = (double)pM.x; y2 = (double)pM.y; x3 = (double)pR.x; y3 = (double)pR.y; a = ((y1-y2)/(x1-x2)-(y1-y3)/(x1-x3)) / (x2-x3); b = (y1-y2)/(x1-x2)-a*(x1+x2); c = y1-a*x1*x1-b*x1; //x的变化范围是[x1, x3],三像素画一个点 int x = 0; double y = 0; vector<CvPoint> pt; for (x = int(x1); x <= int(x3); x = x+3) { y = a * double(x) * double(x) + b * double(x) + c; pt.push_back(cvPoint(x, int(y))); } pt.push_back(cvPoint(int(x3), int(y3))); for (size_t i = 0; i < pt.size()-1; ++ i) { cvLine(image, pt[i], pt[i+1], color); } }
二.绘图操作-画圆
#include "cv.h" #include "highgui.h" #include <stdio.h> #include <../opencv2/core/core.hpp> using namespace std; using namespace cv; int main(int argc,char **argv) { //圆心 Point center = Point(255,255); //半径 int r = 100; //承载图像 Mat picture(500,500,CV_8UC3,Scalar(255,255,255)); //参数为:承载的图像、圆心、半径、颜色、粗细、线型 circle(picture,center,r,Scalar(0,0,0),-1); imshow("底板",picture); waitKey(0); }
效果如图所示:
其中可以通过把线的粗细设置为-1来画实心的图形
相关文章推荐
- OpenCV 对轮廓的绘图与筛选操作总结
- opencv绘图操作
- OpenCV学习笔记(一):绘图操作
- opencv绘图操作
- OpenCv基本绘图操作
- OpenCV 绘图与其他图像操作
- OpenCV 绘图与其他图像操作
- 【opencv 官方教程】翻译2 核心功能 中 图像操作 线性变换 亮度调整 简单绘图
- 初学opencv-opencv2相关绘图操作
- opencv3绘图操作
- opencv2-进行基本的绘图操作
- 我的OpenCV学习笔记(七):绘图操作
- Opencv绘图操作
- opencv基本图像操作
- Opencv2 基础操作
- OpenCV图像处理-区域分割-形态学操作应用
- OpenCV Mat基本操作总结
- 【OpenCV入门指南】第十一篇 鼠标绘图
- OpenCV 矩阵操作
- 【OpenCV入门指南】第十一篇 鼠标绘图