39 #include <visp3/core/vpImageTools.h>
40 #include <visp3/imgproc/vpImgproc.h>
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];
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());
109 unsigned int mask_height = mask.
getHeight();
110 for (
unsigned int i = 0; i < mask_height; ++i) {
111 memcpy(mask[i], flood_fill_mask[i + 1] + 1,
sizeof(
unsigned char) * mask.
getWidth());
125 std::cerr <<
"marker.getHeight() != mask.getHeight() || "
126 "marker.getWidth() != mask.getWidth()"
132 std::cerr <<
"Input images are empty!" << std::endl;
141 vpImageMorphology::dilatation<unsigned char>(h_kp1, connexity);
144 unsigned int h_kp1_height = h_kp1.
getHeight();
145 unsigned int h_kp1_width = h_kp1.
getWidth();
146 for (
unsigned int i = 0; i < h_kp1_height; ++i) {
147 for (
unsigned int j = 0; j < h_kp1_width; ++j) {
148 h_kp1[i][j] = std::min<unsigned char>(h_kp1[i][j], mask[i][j]);
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
unsigned int getWidth() const
unsigned int getSize() const
unsigned int getHeight() const
VISP_EXPORT void floodFill(vpImage< unsigned char > &I, const vpImagePoint &seedPoint, const unsigned char oldValue, const unsigned char newValue, const vpImageMorphology::vpConnexityType &connexity=vpImageMorphology::CONNEXITY_4)
VISP_EXPORT void fillHoles(vpImage< unsigned char > &I)
VISP_EXPORT void reconstruct(const vpImage< unsigned char > &marker, const vpImage< unsigned char > &mask, vpImage< unsigned char > &h_kp1, const vpImageMorphology::vpConnexityType &connexity=vpImageMorphology::CONNEXITY_4)