#sorting #image-processing #bounding-box
#сортировка #обработка изображений #ограничивающий прямоугольник
Вопрос:
У меня есть вопрос по типу подключенного компонента. У меня есть двоичное изображение (только 0 и 1), я запускаю функцию из matlab: f =
1 0 0 1 0 0 0 1 0 0
1 1 0 1 1 1 0 0 1 0
0 0 0 0 0 0 0 1 1 1
1 0 0 0 1 0 1 0 1 1
1 1 0 0 0 0 0 1 1 1
0 0 0 1 0 0 1 0 0 0
0 0 0 1 0 1 1 0 1 1
1 1 0 0 1 0 0 0 1 0
1 1 0 1 1 1 0 1 0 0
1 1 0 0 1 0 0 0 1 0
[L num]=bwlabel(f);
предположим, что они дают мне матрицу:
1 0 0 4 0 0 0 5 0 0
1 1 0 4 4 4 0 0 5 0
0 0 0 0 0 0 0 5 5 5
2 0 0 0 6 0 5 0 5 5
2 2 0 0 0 0 0 5 5 5
0 0 0 5 0 0 5 0 0 0
0 0 0 5 0 5 5 0 7 7
3 3 0 0 5 0 0 0 7 0
3 3 0 5 5 5 0 7 0 0
3 3 0 0 5 0 0 0 7 0
Но вы можете видеть в этом отчете, что порядок матрицы следует за столбцом. Теперь я хочу изменить это на другие строки, что означает, что число 4 равно 2, число 5 равно 3… и так далее.
Выбор влево-> вправо и сверху -> вниз. Как я могу это сделать (способ чтения)??
Большое вам спасибо
Комментарии:
1. Простым решением было бы поперечное изображение перед bwlabel и поперечное его снова после этого. см. Ответ
2. Вы пытаетесь прочитать текст, как в примерах изображений, которые вы опубликовали? Если да, пожалуйста, также разместите эти изображения в вопросе.
Ответ №1:
f=f';
[L num]=bwlabel(f);
L=L';
решает ли это вашу проблему?
Комментарии:
1. Мне жаль, что это не решает мою проблему, потому что, если я использую этот способ с изображением: ! [исходное изображение] [1] Первый — второй — третий подключенный компонент: F -S -l, как на этом рисунке : ! [изображение 1] [2] Это неправильно, потому что я хочу, чтобы порядок 1-2-3-… был H — a — w-a — (точка I) — (точка I) — тире-и -и -с… Спасибо за вашу помощь, но это неправильно, у вас есть другой способ? [1]: i.stack.imgur.com/nlZo7.jpg [2]: i.stack.imgur.com/i1Rky.jpg
2. @user3607620 Ответ правильный на заданный вами вопрос. Причина, по которой
F
он помечен как первый компонент, заключается в том, чтоF
это первый компонент, найденный в первой строке изображения. Устранение этой проблемы (созданиеH
первого компонента, найденного в первой строке) значительно отличается от заданного вами.3. @user3607620 как указано до того, как ответ будет правильным для представленного вопроса. то, что вы показали в этом комментарии, не совпадает с вопросом и не решается таким же образом. если это были изображения, которые вы хотели пометить, вы должны были представить их раньше. Если вы внимательно посмотрите, вы увидите, что F идентифицируется первым, потому что первая ненулевая строка принадлежит F, как объяснил beaker . Я мог бы дать вам идею для ее решения, хотя, если она намного сложнее и полностью отличается от вашей проблемы, ее не следует размещать здесь (примечание: проблема будет заключаться в точках I и dash)