我试图在OpenCV中使用C++检测椭圆内核.我试过获取Canny边,然后在边上使用fitEllipse()函数.虽然这可以找到椭圆,但是当图像有噪声或者边缘很多时,精度是可怕的.
我已经意识到要走的路是检测椭圆,而不是拟合椭圆.也许像霍夫圈子,但椭圆?我也不知道椭圆的长度,因为它在图像之间变化.
任何人都可以帮我开始吗?所有相关的答案都很模糊,我只想指出从哪里开始.
在下面的代码段中,将“ Hulooo”添加到列表中会生成编译器错误,因为String不会扩展String。但是,对字符串的ArrayList进行类型转换是可行的。但是类型转换对象的ArrayList不起作用。
有人可以解释为什么会这样吗?什么适用于String(在这种情况下)而不适用于Object?
public static void takeList(List<? extends String> list)
{
list.add("Hulloo");//ERROR
list=new ArrayList<String>();
list=new ArrayList<Object>();//ERROR
}
Run Code Online (Sandbox Code Playgroud)