使用编程(openCV或MATLAB)在下图中找到内圆(或外圆)每个像素的坐标的方法是什么?
imtool 提供此信息,但它是鼠标驱动的。
更新
我使用 imtool 来检测这些位置,方法是将鼠标光标放在圆圈上的每个点上并手动记录该值。但是我如何使用手动编程来做到这一点,我不能在圈子上这么多品脱。
在 Matlab 中,你可以这样做:
im = imread('im.png'); %# load image
[y,x] = find(all(im<5, 3)); %# find black pixels
position = [x,y]; %# display them
这是使用 openCV 查找具有色相和饱和度过滤的对象的指南。也许您可以将它与阈值黑色一起使用?
http://myrobotlab.org/content/opencv-how-isolate-object-hue-saturation-and-value
这里还有一种检测圆圈的方法:
http://cgi.cse.unsw.edu.au/~cs4411/wiki/index.php?title=OpenCV_Guide
你可以实现这个代码......
a=rgb2gray(imread('image.tif'));
[x,y,z]=size(a);
count=0;
for i=1:x
for j=1:y
if a(i,j)==0
count=count+1;
new_x(count)=j;
new_y(count)=i;
end
end
end
new_x
您可以从&获取坐标值new_y