52 if (I.getSize() == 0) {
67 for (
unsigned int i = 0; i < I.getHeight(); ++i) {
68 for (
unsigned int j = 0; j < I.getWidth(); ++j) {
69 mask[i + 1][j + 1] = 255 - I[i][j];
75 for (
unsigned int i = 0; i < marker.
getHeight(); ++i) {
76 if (i == 0 || i == marker.
getHeight() - 1) {
77 for (
unsigned int j = 0; j < marker.
getWidth(); ++j) {
83 marker[i][marker.
getWidth() - 1] = 255;
88 reconstruct(marker, mask, I_reconstruct, connexity);
90 for (
unsigned int i = 0; i < I.getHeight(); ++i) {
91 for (
unsigned int j = 0; j < I.getWidth(); ++j) {
92 I[i][j] = 255 - I_reconstruct[i + 1][j + 1];
99 unsigned int i_height = I.getHeight();
100 for (
unsigned int i = 0; i < i_height; ++i) {
101 memcpy(flood_fill_mask[i + 1] + 1, I[i],
sizeof(
unsigned char) * I.
getWidth());
105 const unsigned char newVal = 255;
110 unsigned int mask_height = mask.
getHeight();
111 for (
unsigned int i = 0; i < mask_height; ++i) {
112 memcpy(mask[i], flood_fill_mask[i + 1] + 1,
sizeof(
unsigned char) * mask.
getWidth());
VISP_EXPORT void floodFill(VISP_NAMESPACE_ADDRESSING vpImage< unsigned char > &I, const VISP_NAMESPACE_ADDRESSING vpImagePoint &seedPoint, const unsigned char oldValue, const unsigned char newValue, const VISP_NAMESPACE_ADDRESSING vpImageMorphology::vpConnexityType &connexity=VISP_NAMESPACE_ADDRESSING vpImageMorphology::CONNEXITY_4)
VISP_EXPORT void reconstruct(const VISP_NAMESPACE_ADDRESSING vpImage< unsigned char > &marker, const VISP_NAMESPACE_ADDRESSING vpImage< unsigned char > &mask, VISP_NAMESPACE_ADDRESSING vpImage< unsigned char > &h_kp1, const VISP_NAMESPACE_ADDRESSING vpImageMorphology::vpConnexityType &connexity=VISP_NAMESPACE_ADDRESSING vpImageMorphology::CONNEXITY_4)