Jak wyznaczyć białe plamy/figury na czarnej bitmapie?

0

Mam czarną bitmapę, na której znajdują się białe plamy(figury, przedmioty i itp) - w jaki sposób mogę wyznaczyć ich obwód zapisany za pomoca punktów (x,y)?

Byc może ma ktoś link do gotowego projektu?

0

To nie jest programik do napisania w 5 minut.
Jeśli chcesz, żeby ktoś pomógł to pokaż co już zrobiłeś i z czym masz problem.

0

Najpierw matematyka. Przypomnij sobie jaka jest definicja brzegu figury.

0

Zastosowałem filtr IFilter Edges(), który obrysowuje mi krawędzie.

Teraz jest kwestia, jaki algorytm zastosować, żeby pobrać współrzędne punktów składających się na krawędź

0

skoro obraz jest czarno-biały a krawędź jest jakiegoś innego koloru X, to przejeżdżasz po każdym pikselu, i sprawdzasz, czy jego kolor nie jest równy X

0

Problem masz pewnie z metryką do obliczania odwodu, bo śledzenie obwodu piksel po pikselu nie jest trudne.
Zinterpretowanie długości krzywej, którą można śledzić piksel po pikselu tak by obliczona długość odpowiadała gładkiej krzywej już jest trudne.
Czy dobrze się domyślam, że tu masz właściwy problem?

Najlepiej widać ten problem jeśli narysować (pikselami) odcinek pod niewielkim kątem do poziomu i do tego dorysować krzywą łączącą te same punkty, ale składającą się z odcinka pod kątem 45 stopni i odcinka poziomego.
Logika wskazuje, że ta druga krzywa powinna być dłuższa, ale jak to obliczyć gdy ma się tylko punkty-piksele?

1 użytkowników online, w tym zalogowanych: 0, gości: 1