C++primer学习及OPENCV总结

申明:本篇博文主要是用来督促博主自己的学习,所以博友们如果有什么问题,你可以问,但是博主不一定会回答!

2016-12-4~2016-12-11

opencv基本数据结构网站

http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html?highlight=rotatedrect


知识点1:创建Mat图像

Mat dstImage = createImage(getSize(srcImage), 8, 1);


知识点2:Mat与IplImage相互转换

IplImage->Mat

IplImage*dst3;

Mat dst4=dst3;

Mat->IplImage

Mat img;

IplImage*src;

src=&IplImage(img);


知识点3:将Mat srcgujia 图片扩大,然后进行复制

        //对图像进行扩充
Mat midgujia = cvCreateImage(Size(srcgujia.cols+100,srcgujia.rows+100), 8, 1);
IplImage*mid;
mid = &IplImage(midgujia);
cvZero(mid);

for (int i = 0; i<srcgujia.rows; i++)
{
/* uchar*data=srcgujia.ptr<uchar>(i);
uchar*data1 = midgujia.ptr<uchar>(i + 50);*/
for (int j = 0; j<srcgujia.cols; j++)
{
uchar*data = srcgujia.ptr<uchar>(i, j);
uchar*data1 = midgujia.ptr<uchar>(i + 50, j + 50);
*data1++ = *data++;//只能使用指针++,而不能使用data1[i,j]=data[i,j]   原因不明确
}
}

复制的结果图


知识点4

cvLine( CvArr* img,

        CvPoint pt1, 

                      CvPoint pt2, 

      CvScalar color,

             int thickness=1, 

     int line_type=8, 

                     int shift=0 );

第一个参数img:要划的线所在的图像;

第二个参数pt1:直线起点

第二个参数pt2:直线终点

第三个参数color:直线的颜色 e.g:Scalor(0,0,255)

第四个参数thickness=1:线条粗细

第五个参数line_type=8, 

   8 (or 0) - 8-connected line(8邻接)连接 线。
   4 - 4-connected line(4邻接)连接线。

   CV_AA - antialiased 线条。

第六个参数:坐标点的小数点位数。


知识点5:需找物体的凸包

vector<Point>points;
Point point;
for (int i = 0; i < midgujia.rows; i++)
{
uchar*data2 = midgujia.ptr<uchar>(i);
for (int j = 0; j < midgujia.cols; j++)
{
if (data2[j] == 255)
{
point.x = j;
point.y = i;
points.push_back(point);
}
}
}


RotatedRect box = minAreaRect(points);
Point2f vertex[4];
box.points(vertex);
for (int i = 0; i < 4; i++)
line(midgujia, vertex[i], vertex[(i + 1) % 4], Scalar(255, 255, 255), 1,8);
imshow("矩形包围后", midgujia);
waitKey(0);

//问题  :若minAreaRect的参数不是点就会出现错误




知识点6









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值