diff --git a/examples/example_win32_directx11/main.cpp b/examples/example_win32_directx11/main.cpp index cf6a0c1..5de8275 100644 --- a/examples/example_win32_directx11/main.cpp +++ b/examples/example_win32_directx11/main.cpp @@ -152,32 +152,32 @@ bool LoadTextureFromFile(unsigned char* image_data, int image_width, int image_h // delete[] copy; //} // -//void dilation(unsigned char* image, int width, int height) { -// int structuringElement[3][3] = { -// {0, 255, 0}, -// {255, 255, 255}, -// {0, 255, 0} -// }; -// -// for (int y = 0; y < height; ++y) { -// for (int x = 0; x < width; ++x) { -// int maxPixelValue = 0; -// for (int j = -1; j <= 1; ++j) { -// for (int i = -1; i <= 1; ++i) { -// if (x + i >= 0 && x + i < width && y + j >= 0 && y + j < height) { -// int imagePixelValue = image[(y + j) * width + (x + i)]; -// int structuringElementValue = structuringElement[j + 1][i + 1]; -// int newPixelValue = imagePixelValue + structuringElementValue; -// if (newPixelValue > maxPixelValue) { -// maxPixelValue = newPixelValue; -// } -// } -// } -// } -// image[y * width + x] = static_cast(maxPixelValue > 255 ? 255 : maxPixelValue); -// } -// } -//} +void dilation(unsigned char* image, int width, int height) { + int structuringElement[3][3] = { + {0, 255, 0}, + {255, 255, 255}, + {0, 255, 0} + }; + + for (int y = 0; y < height; ++y) { + for (int x = 0; x < width; ++x) { + int maxPixelValue = 0; + for (int j = -1; j <= 1; ++j) { + for (int i = -1; i <= 1; ++i) { + if (x + i >= 0 && x + i < width && y + j >= 0 && y + j < height) { + int imagePixelValue = image[(y + j) * width + (x + i)]; + int structuringElementValue = structuringElement[j + 1][i + 1]; + int newPixelValue = imagePixelValue + structuringElementValue; + if (newPixelValue > maxPixelValue) { + maxPixelValue = newPixelValue; + } + } + } + } + image[y * width + x] = static_cast(maxPixelValue > 255 ? 255 : maxPixelValue); + } + } +} void erosion(unsigned char* image, int width, int height) {