求C中图像的内圆半径

求C中图像的内圆半径,c,math,image-processing,C,Math,Image Processing,我正在读取图像并将其像素存储在数组中。同时还存储图像的高度和宽度 我不是从哪里开始分析像素来获得图像中内圈的半径 这是图片 我想,如果我找到内圈的垂直高度和水平高度,那么可以将其平均,找到直径,然后是半径。考虑边界,其中两个相邻像素具有不同的颜色。在每一条(水平或垂直)线上都有偶数个边界。为了找到内圈的直径,考虑有6个边界的线…然后取最大的第三和第四边界之间的差异。颜色是黑色的,你可以检查直到RGB改变为(1,1,1)然后它的白色,这意味着你在中间,当你再次命中(0,0,0),你开始计数像素,直

我正在读取图像并将其像素存储在数组中。同时还存储图像的高度和宽度

我不是从哪里开始分析像素来获得图像中内圈的半径

这是图片


我想,如果我找到内圈的垂直高度和水平高度,那么可以将其平均,找到直径,然后是半径。

考虑边界,其中两个相邻像素具有不同的颜色。在每一条(水平或垂直)线上都有偶数个边界。为了找到内圈的直径,考虑有6个边界的线…然后取最大的第三和第四边界之间的差异。颜色是黑色的,你可以检查直到RGB改变为(1,1,1)然后它的白色,这意味着你在中间,当你再次命中(0,0,0),你开始计数像素,直到你再次击中白色。如果是这样的话,你可以把像素减半,得到半径。从半高检查并穿过白色,如果您想使用纯C,请使用此选项only@Veer内圈总是在中心吗?如果是的话,你仍然可以使用我的方法,并且总是从中得到半径,你能对输入假设多少?输入图像是否总是如上所述,或者是否需要更通用的方法?如果你可能会发现图像的变化,我会考虑使用霍夫变换来定位所有的圆。一旦这样做了,报告发现的圆的最小半径将是一项很简单的任务,因为您可以得到每个圆的位置和大小。这里有一个页面演示了这个过程:如果内圈位于图像的中心,只需从左中心(或向上或向下,…)数黑色像素。