OPENCV_图片文字_矩形_圆形_直线_图片缩放

来源:互联网 发布:域名注册手机号 编辑:程序博客网 时间:2024/04/28 12:01


//通过OPENCV 绘制直线,矩形,圆形,输入文字,缩放窗口
#include "stdafx.h"
#include "highgui.h"
#include "cv.h"


int _tmain(int argc, _TCHAR* argv[])
{

    IplImage*img=cvLoadImage("C:\\Users\\1309164\\Pictures\\随手拍\\弯路1.jpg",1);
 IplImage*dst=NULL;

 if(!img)
 {
  printf("is not ok\n"); //如果读取失败输出
  return 0;
 }
 //建立图片缩小比例并申请DST空间  imgsize=size大小
 double img_w=0.5;
 double img_h=0.5;
    CvSize size;
    size.height=img->height*img_h;
    size.width=img->width*img_w;
   dst=cvCreateImage(size,img->depth,img->nChannels); //如果想要使用cvReize必须先要申请内存
 //建立两个点为绘制矩形与点坐标做准备
 CvPoint point1,point2;
 point1.x=8; point1.y=100;
 point2.x=300;point2.y=400;
 //绘制一条10宽,259长直线
 cvRectangle(img,cvPoint(400,0),cvPoint(400,800),CV_RGB(0,255,0),3,8);//绿色矩形
 //绘制蓝色矩形
 cvRectangle(img,point1,point2,CV_RGB(0,0,255),5,8,0);//蓝色矩形 5,线条宽度,8默认,线条绘制类型0点类型
 //绘制红色圆形
 cvCircle(img,cvPoint(400,400),60,CV_RGB(255,10,23),3,8,0); //绘制圆形
   //蓝色矩形四点画上红色点
 cvCircle(img,cvPoint(point1.x,point1.y),2,CV_RGB(255,10,23),3,8,0);//绘制矩形左上点
 cvCircle(img,cvPoint(point2.x,point1.y),2,CV_RGB(255,0,0),3,8,0);//绘制矩形右上点
 cvCircle(img,cvPoint(point1.x,point2.y),2,CV_RGB(255,0,0),3,8,0);//绘制矩形左下点
 cvCircle(img,cvPoint(point2.x,point2.y),2,CV_RGB(255,0,0),3,8,0);//绘制矩形右下点
 //字体初始化并输出
 CvFont font;//定义字体结构
 char *print; //定义输出文本
 print="caoni ma ";
 char* abc="meimaobing";
 double hscale=1.5f; //字体的宽度
 double vscale=1.5f; //字体高度

 cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX,hscale,vscale,0,3,8);//字体初始化 :字体结构,字体风格,字体宽,字体高,字体斜率,字体厚度,字体间隔
    cvPutText(img,abc,cvPoint(10,200),&font,CV_RGB(0,100,15));//字体输出:图像,输入字体,点位,字体结构,颜色
    cvPutText(img,print,cvPoint(10,250),&font,CV_RGB(255,100,15));//图像,输入字体,点位,字体结构,颜色
 //图像缩小
 cvResize(img,dst,1);
  
  cvNamedWindow("img");
 cvShowImage("img",img);
  cvNamedWindow("dst");
 cvShowImage("dst",dst);
// cvResizeWindow("img",500,500);
 
    char c=cvWaitKey(0);
 if(c==27) return-1;
 cvReleaseImage(&img);
 cvReleaseImage(&dst);
 cvDestroyAllWindows();
 return 0;
}


0 0
原创粉丝点击