Как я могу нарисовать круг на изображении в MATLAB?

В то время как это верно, что использование ошибок является более дорогим, большинство людей полагает, что большинство их GUID будет компьютером, сгенерированным, таким образом, TRY-CATCH не является слишком дорогим, так как это только генерирует стоимость на CATCH. Можно доказать это себе с простым тестом два (пользовательская общественность, никакой пароль).

Здесь Вы идете:

using System.Text.RegularExpressions;


 /// 
  /// Validate that a string is a valid GUID
  /// 
  /// 
  /// 
  private bool IsValidGUID(string GUIDCheck)
  {
   if (!string.IsNullOrEmpty(GUIDCheck))
   {
    return new Regex(@"^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$").IsMatch(GUIDCheck);
   }
   return false;
  }

11
задан gnovice 8 December 2009 в 03:09
поделиться

4 ответа

Вы можете использовать обычную команду PLOT с круговой точкой маркера :

[x_p,y_p] = find(points);
imshow(im);         %# Display your image
hold on;            %# Add subsequent plots to the image
plot(y_p,x_p,'o');  %# NOTE: x_p and y_p are switched (see note below)!
hold off;           %# Any subsequent plotting will overwrite the image!

Вы также можете настроить эти другие свойства маркера участка: MarkerEdgeColor , MarkerFaceColor , MarkerSize .

Если вы затем хотите сохранить новое изображение с нанесенными на него маркерами, вы можете посмотреть этот ответ я дал на вопрос о сохранении размеров изображения при сохранении изображений из фигур.

ПРИМЕЧАНИЕ: При построении данных изображения с помощью IMSHOW (или IMAGE , и т. д.), обычная интерпретация строк и столбцов по существу меняется. Обычно первое измерение данных (то есть строки) считается данными, которые лежат на оси x, и, вероятно, поэтому вы используете x_p в качестве первого набора значений, возвращаемых функцией FIND . Однако IMSHOW отображает первое измерение данных изображения по оси y , поэтому первое значение, возвращаемое функцией FIND, в этом случае оказывается значением координаты y .

]
21
ответ дан 3 December 2019 в 04:52
поделиться

Хм, мне пришлось повторно переключить их в этом вызове:

k = convhull(x,y);
figure;
imshow(image);         %# Display your image
hold on;            %# Add subsequent plots to the image
plot(x,y,'o');  %# NOTE: x_p and y_p are switched (see note below)!
hold off;           %# Any subsequent plotting will overwrite the image!

В ответ на комментарии:

x и y создаются с использованием следующего кода:

temp_hull = stats_single_object(k).ConvexHull;
for k2 = 1:length(temp_hull)
   i = i+1;
     [x(i,1)] = temp_hull(k2,1);    
     [y(i,1)] = temp_hull(k2,2);    
 end;

это может быть что ConvexHull - это наоборот, и поэтому сюжет другой. Или что я сделал ошибку, и это должно быть

[x(i,1)] = temp_hull(k2,2);    
[y(i,1)] = temp_hull(k2,1);

Однако в документации неясно, какой столбец = x OR y: Цитата: «Каждая строка матрицы содержит координаты x и y одной вершины многоугольника»

Я читал это, поскольку x - это первый столбец, а y - второй столбец.

0
ответ дан 3 December 2019 в 04:52
поделиться

Вот метод, который, как мне кажется, вам нужен:

[x_p, y_p] = find (points); 

% convert the subscripts to indicies, but transposed into a row vector
a = sub2ind(size(im), x_p, y_p)';

% assign all the values in the image that correspond to the points to a value of zero
im([a]) = 0; 

% show the new image
imshow(im) 
-1
ответ дан 3 December 2019 в 04:52
поделиться

Этот файл от Zhenhai Wang из файлового обмена Matlab Central делает свое дело.

%----------------------------------------------------------------
% H=CIRCLE(CENTER,RADIUS,NOP,STYLE)
% This routine draws a circle with center defined as
% a vector CENTER, radius as a scaler RADIS. NOP is 
% the number of points on the circle. As to STYLE,
% use it the same way as you use the rountine PLOT.
% Since the handle of the object is returned, you
% use routine SET to get the best result.
%
%   Usage Examples,
%
%   circle([1,3],3,1000,':'); 
%   circle([2,4],2,1000,'--');
%
%   Zhenhai Wang <zhenhai@ieee.org>
%   Version 1.00
%   December, 2002
%----------------------------------------------------------------
2
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: