作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 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);
关于c++ - opencv:如何用距中心的距离填充椭圆形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416488/
我是一名优秀的程序员,十分优秀!