Realsense 捕捉3d打印的黑色标记点

昨天用realsense试了试乒乓球,效果还不错,但是由于应用的限制,用不了颜色这么鲜艳的标记点,于是今天3d打印了一个深咖啡色(深棕色)的小球,试了试,效果也不错:
在这里插入图片描述

rgb处理的流程变成了:

  1. RGB转灰度
  2. 二值化
  3. 连通域滤波
    • 按照连通域大小
    • 按照连通域的圆度:圆度计算公式 roundness = 面积*4*pi / (周长)^2, 约大约圆。
Mat imgGray;
cvtColor(image, imgGray, CV_BGR2GRAY);

// threshold
Mat imgBin;
inRange(imgGray, Scalar(0), Scalar(90), imgBin);

// find all connected components
vector<vector<Point>>contours;
vector<Vec4i>hierarchy;
findContours(imgBin, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);

Mat imgTarget = Mat::zeros(imgBin.size(), CV_8U);
for (int i=0; i<contours.size();i++)
{
	// calculate area
	double a = contourArea(contours[i]);
	// calculate roundness
	double factor = (a * 4 * CV_PI) / (pow(arcLength(contours[i], true), 2));
	// draw out contours fit the need
	if (a < 150 && a > 80 && factor > 0.8)
		drawContours(imgTarget, contours, i, Scalar(255), CV_FILLED, 8, hierarchy);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值