New way to calculate the average of min and max images
This commit is contained in:
parent
089ce4bf08
commit
7f53eaa142
25
main.cpp
25
main.cpp
@ -169,8 +169,8 @@ int main()
|
|||||||
|
|
||||||
for(unsigned int i = 0; i < vectEMax.size(); i++) {
|
for(unsigned int i = 0; i < vectEMax.size(); i++) {
|
||||||
unsigned char max = 0;
|
unsigned char max = 0;
|
||||||
for (int k = vectEMax[i].getX() - ((w[i] - 1) / 2); k < vectEMax[i].getX() + ((w[i] + 1) / 2); k++) {
|
for (int k = vectEMax[i].getX() - ((w[i] + 1) / 2); k < vectEMax[i].getX() + ((w[i] + 1) / 2); k++) {
|
||||||
for (int l = vectEMax[i].getY() - ((w[i] - 1) / 2); l < vectEMax[i].getY() + ((w[i] + 1) / 2); l++) {
|
for (int l = vectEMax[i].getY() - ((w[i] + 1) / 2); l < vectEMax[i].getY() + ((w[i] + 1) / 2); l++) {
|
||||||
if (imgSource(k, l) > max) {
|
if (imgSource(k, l) > max) {
|
||||||
max = imgSource(k, l);
|
max = imgSource(k, l);
|
||||||
}
|
}
|
||||||
@ -181,8 +181,8 @@ int main()
|
|||||||
|
|
||||||
for(unsigned int i = 0; i < vectEMin.size(); i++) {
|
for(unsigned int i = 0; i < vectEMin.size(); i++) {
|
||||||
unsigned char min = 199;
|
unsigned char min = 199;
|
||||||
for (int k = vectEMin[i].getX() - ((w[i] - 1) / 2); k < vectEMin[i].getX() + ((w[i] + 1) / 2); k++) {
|
for (int k = vectEMin[i].getX() - ((w[i] + 1) / 2); k < vectEMin[i].getX() + ((w[i] + 1) / 2); k++) {
|
||||||
for (int l = vectEMin[i].getY() - ((w[i] - 1) / 2); l < vectEMin[i].getY() + ((w[i] + 1) / 2); l++) {
|
for (int l = vectEMin[i].getY() - ((w[i] + 1) / 2); l < vectEMin[i].getY() + ((w[i] + 1) / 2); l++) {
|
||||||
if (imgSource(k, l) < min) {
|
if (imgSource(k, l) < min) {
|
||||||
min = imgSource(k, l);
|
min = imgSource(k, l);
|
||||||
}
|
}
|
||||||
@ -195,8 +195,8 @@ int main()
|
|||||||
|
|
||||||
// Calculate the upper envelope
|
// Calculate the upper envelope
|
||||||
for(unsigned int i = 0; i < vectEMax.size(); i++) {
|
for(unsigned int i = 0; i < vectEMax.size(); i++) {
|
||||||
for (int k = vectEMax[i].getX() - ((w[i] - 1) / 2); k < vectEMax[i].getX() + ((w[i] + 1) / 2); k++) {
|
for (int k = vectEMax[i].getX() - ((w[i] + 1) / 2); k < vectEMax[i].getX() + ((w[i] + 1) / 2); k++) {
|
||||||
for (int l = vectEMax[i].getY() - ((w[i] - 1) / 2); l < vectEMax[i].getY() + ((w[i] + 1) / 2); l++) {
|
for (int l = vectEMax[i].getY() - ((w[i] + 1) / 2); l < vectEMax[i].getY() + ((w[i] + 1) / 2); l++) {
|
||||||
if( (k == vectEMax[i].getX() && l == vectEMax[i].getY()) || imgMax(k, l) == 0 ) {
|
if( (k == vectEMax[i].getX() && l == vectEMax[i].getY()) || imgMax(k, l) == 0 ) {
|
||||||
newImgMax(k, l) = vectFilterMax[i];
|
newImgMax(k, l) = vectFilterMax[i];
|
||||||
}
|
}
|
||||||
@ -211,8 +211,8 @@ int main()
|
|||||||
|
|
||||||
// Calculate the lower envelope
|
// Calculate the lower envelope
|
||||||
for(unsigned int i = 0; i < vectEMin.size(); i++) {
|
for(unsigned int i = 0; i < vectEMin.size(); i++) {
|
||||||
for (int k = vectEMin[i].getX() - ((w[i] - 1) / 2); k < vectEMin[i].getX() + ((w[i] + 1) / 2); k++) {
|
for (int k = vectEMin[i].getX() - ((w[i] + 1) / 2); k < vectEMin[i].getX() + ((w[i] + 1) / 2); k++) {
|
||||||
for (int l = vectEMin[i].getY() - ((w[i] - 1) / 2); l < vectEMin[i].getY() + ((w[i] + 1) / 2); l++) {
|
for (int l = vectEMin[i].getY() - ((w[i] + 1) / 2); l < vectEMin[i].getY() + ((w[i] + 1) / 2); l++) {
|
||||||
if( (k == vectEMin[i].getX() && l == vectEMin[i].getY()) || imgMin(k, l) == 0 ) {
|
if( (k == vectEMin[i].getX() && l == vectEMin[i].getY()) || imgMin(k, l) == 0 ) {
|
||||||
newImgMin(k, l) = vectFilterMin[i];
|
newImgMin(k, l) = vectFilterMin[i];
|
||||||
}
|
}
|
||||||
@ -232,7 +232,14 @@ int main()
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Calculate the Average
|
// Calculate the Average
|
||||||
CImg<unsigned char> imgMoyenne = (newImgMax+newImgMin)/2;
|
CImg<unsigned char> imgMoyenne(imgLena.width(), imgLena.height());
|
||||||
|
|
||||||
|
for (int i = 0; i<imgLena.width() ; i++) {
|
||||||
|
for (int j = 0; j<imgLena.height() ; j++) {
|
||||||
|
imgMoyenne(i,j) = (newImgMin(i,j) + newImgMax(i,j)) /2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CImgDisplay dispMoyenne(imgMoyenne,"Image Moyenne");
|
CImgDisplay dispMoyenne(imgMoyenne,"Image Moyenne");
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user