如何使用編程(openCV或MATLAB)在以下圖像中找到內部圓(或外部圓)的每個像素的座標?
imtool提供此信息,但它是鼠標驅動的。使用編程查找每個像素的座標
更新
我用imtool檢測這些位置,通過把上的每個點我的鼠標光標在圓上和手動注意到此值。但是,我如何使用手動編程來做到這一點,我不能在圓上做很多點。
如何使用編程(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
我對檢測形狀不感興趣。我只想獲取圓圈上像素的位置。我可以使用imtool,但它會是手動的;我將不得不將鼠標光標放在圓上的每個點上,並記下位置x,y。 – gpuguy 2012-07-26 07:22:36
可以實現這個代碼.. 。
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
這是一個**糟糕的**解決方案! (1)你不預先分配'new_x'和'new_y'。 (2)你使用嵌套循環。這完全不是**這種做Matlab任務的方式! – Shai 2014-07-14 06:28:42
得到的座標值,你嘗試過什麼?你可以遍歷所有的像素,並檢查它是否是黑色的。 – iiro 2012-07-26 06:15:06