Opencv:如何用距离中心的距离填充椭圆形状
opencv: how to fill an ellipse shape with distance from the center
我想在OpenCV中填充一个椭圆形状,以这样一种方式,它所取的值是到其中心的标准化距离。
通常在OpenCV中,我可以用椭圆形状填充图像,如下所示:
cv::ellipse(image, e, cv::Scalar(255), CV_FILLED);
然而,这给椭圆一个恒定的标量值1,我想根据它到中心的距离来改变这个值。
我想一种方法是遍历这些点并手动计算。我对OpenCV很陌生,在使用这个Mat对象时遇到了麻烦。
下面是查找椭圆距离变换的示例代码片段。
你可以简单地创建一个椭圆区域的蒙版&查找遮罩的距离变换
Mat mEllipse_Bgr(Size(640,480),CV_8UC3,Scalar(0));
Mat mEllipseMask(mEllipse_Bgr.size(),CV_8UC1,Scalar(0));
// Draw a ellipse
ellipse( mEllipse_Bgr, Point( 200, 200 ), Size( 100.0, 160.0 ), 45, 0, 360, Scalar( 255, 0, 0 ), 1, 8 );
ellipse( mEllipseMask, Point( 200, 200 ), Size( 100.0, 160.0 ), 45, 0, 360, Scalar( 255), -1, 8 );
imshow("Ellipse Image",mEllipse_Bgr);
imshow("Ellipse Mask",mEllipseMask);
// Perform the distance transform algorithm
Mat mDist;
distanceTransform(mEllipseMask, mDist, CV_DIST_L2, 3);
// Normalize the distance Transform image for range = {0.0, 1.0} to view it
normalize(mDist, mDist, 0, 1., NORM_MINMAX);
imshow("Distance Transform Image", mDist);
相关文章:
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 使用不同算法的 PKCS1v15 填充进行加密 ++ 签名
- C++:使用缓冲区中的数据填充结构
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- Levenshtein 两个文件的距离花费了太多时间
- 使用动态实例化的对象填充矢量的快速方法
- 两个有符号数字之间的距离
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 如何排列二进制字符串以最小化它们之间的距离
- 使用C++中的链表对与原点的距离、x 和 y 坐标进行排序
- 用未知长度的列填充矢量
- 有效地计算像素到其对应核线的距离
- 堆和堆栈之间的距离
- 我是 c++ 的新手,有没有一种算法可以找到 3d 数组中最接近的 0 的距离?
- 在C++中将浮点数组的参数填充为 float*
- 使用指向数组的指针填充动态数组
- 用 C/C++ 中的值填充 DataGridView 组合框
- Opencv:如何用距离中心的距离填充椭圆形状