需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)球体的图像坐标,

需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)球体的图像坐标,,第1张

你应该是初学者吧,首先:下载opencv,并且按照网上说的进行配置。

然后,打开VS,新建工程,写上代码,这里给你一个简单的示例:

#include "cvh"

#include "highguih"

int main( int argc, char argv )

{

IplImage pImg; //声明IplImage指针

//载入图像

if( argc == 2 &&

(pImg = cvLoadImage( argv[1], 1)) != 0 )

{

cvNamedWindow( "Image", 1 );//创建窗口

cvShowImage( "Image", pImg );//显示图像

cvWaitKey(0); //等待按键

cvDestroyWindow( "Image" );//销毁窗口

cvReleaseImage( &pImg ); //释放图像

return 0;

}

return -1;

}

当你完成图像分割之后,图像轮廓检测往往可以进一步筛选你要的目标,OpenCV中可以使用cv2findContours来得到轮廓。

补充

再不少场景中,找轮廓的最小外接矩形是基本需求,opencv中minAreaRect得到的是一个带有旋转角度信息的rect,可以使用cv2boxPoints(rect)来将其转为矩形的四个顶点坐标(浮点类型)你也可以使用cv2polylines来绘制这样的轮廓信息

注意findContours参数的变化,在opencv4中,返回值只有contours和hierarchy ,这一点与opencv3中不同。对与轮廓的层级结构,比较难用,虽然可以通过轮廓的层级结构来进行索引你需要的轮廓,不过对于大部分机器视觉应用场景,二值化的结果有时候很难预料,单单通过这种层级关系索引,非常容易出错。所以,只找最外部结构的 cv2RETR_EXTERNAL 是不是真香呢?

处理cv2approxPolyDP()外,你也可以使用cv2convexHull来求轮廓的近似凸包,其中凸形状内部--任意两点连线都在该形状内部。

clockwise :默认为False,即轮廓为逆时针方向进行排列;

returnPoints :设置为False会返回与凸包上对应的轮廓的点索引值,设置为True,则会返回凸包上的点坐标集,默认为True

对于opencv-python的提取图像轮廓部分有问题欢迎留言, Have Fun With OpenCV-Python, 下期见。

以上就是关于需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)球体的图像坐标,全部的内容,包括:需要编写一个opencv的程序,能够不断采集摄像头的图像,计算图像中红色(或接近红色)球体的图像坐标,、OpenCV-Python系列八:提取图像轮廓、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10177815.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存