ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = 0; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = 0; } return mm; }
ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = 0; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = R; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = 0; } return mm; } ImageMatrix convert2convertAndgray(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height/2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = 0; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 1] = G; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = G; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 0] = G; } return mm; } ImageMatrix convert2half(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height / 2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x + 0] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 1] = G; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = G; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 0] = G; } return mm; } ImageMatrix convert2half(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height / 2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x + 0] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 1] = G; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = G; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 0] = G; } return mm; } ImageMatrix convert2half(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height / 2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x + 0] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 1] = G; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = G; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 0] = G; } return mm; } ImageMatrix convert2half(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height / 2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x + 0] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 1] = G; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = G; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x + 0]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0; mm.term[y*m.rowsize + x + 0] = G; } return mm; } ImageMatrix convert2half(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height / 2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x + 0] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y < m.height; y++) for (int x = 0; x < m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = 0; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = 0; } return mm; }
ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = 0; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = R; } return mm; } ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = 0; } return mm; } ImageMatrix convert2convertAndgray(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2]; BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5); if (y<m.height/2) mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = gray; else{ mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = G; mm.term[y*m.rowsize + x + 2] = R; } } return mm; }
ImageMatrix convert2green(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
ImageMatrix convert2blue(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B; mm.term[y*m.rowsize + x + 1] = 0; mm.term[y*m.rowsize + x + 2] = 0; } return mm; } ImageMatrix convert2red(ImageMatrix m){ ImageMatrix mm = ImageMatrix(m.height, m.width); for (int y = 0; y<m.height; y++) for (int x = 0; x<m.rowsize; x += 3){ BYTE B = m.term[y*m.rowsize + x]; BYTE G = m.term[y*m.rowsize + x + 1]; BYTE R = m.term[y*m.rowsize + x + 2];
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2convertAndgray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2gg(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2bb(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2rr(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2cc(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y < m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1]
= mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
int main(){
cout<<sizeof(BITMAPFILEHEADER)<<endl;
cout<<sizeof(BITMAPINFOHEADER)<<endl;
ImageMatrix m, mm;
m.Load("tiffany511.bmp");
m.Save("tiffany511(copy).bmp");
mm=convert2gray(m);
mm.Save("tiffany2.bmp");
mm = convert2gg(m);
mm.Save("tiffanyG.bmp");
mm = convert2rr(m);
mm.Save("tiffanyR.bmp");
mm = convert2bb(m);
mm.Save("tiffanyB.bmp");
mm = convert2cc(m);
mm.Save("tiffanyC.bmp");
system("Pause");
return 0;
}
ImageMatrix convert2gray(ImageMatrix m){
回覆刪除ImageMatrix mm=ImageMatrix(m.height, m.width);
for(int y=0; y<m.height; y++)
for(int x=0; x<m.rowsize; x+=3){
BYTE B=m.term[y*m.rowsize+x];
BYTE G=m.term[y*m.rowsize+x+1];
BYTE R=m.term[y*m.rowsize+x+2];
BYTE gray=(BYTE)(0.2989*R + 0.5870*G + 0.1140*B+0.5);
mm.term[y*m.rowsize+x]=
mm.term[y*m.rowsize+x+1]=
mm.term[y*m.rowsize+x+2]=gray;
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 1] = G;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = G;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 0] = G;
}
return mm;
}
ImageMatrix convert2half(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x + 0] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 1] = G;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = G;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 0] = G;
}
return mm;
}
ImageMatrix convert2half(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x + 0] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 1] = G;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = G;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 0] = G;
}
return mm;
}
ImageMatrix convert2half(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x + 0] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 1] = G;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = G;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 0] = G;
}
return mm;
}
ImageMatrix convert2half(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x + 0] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 1] = G;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 0] = mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = G;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x + 0];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x + 1] = mm.term[y*m.rowsize + x + 2] = 0;
mm.term[y*m.rowsize + x + 0] = G;
}
return mm;
}
ImageMatrix convert2half(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x + 0] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2gg(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2bb(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2rr(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2cc(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y < m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1]
= mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
int main(){
cout<<sizeof(BITMAPFILEHEADER)<<endl;
cout<<sizeof(BITMAPINFOHEADER)<<endl;
ImageMatrix m, mm;
m.Load("tiffany511.bmp");
m.Save("tiffany511(copy).bmp");
mm=convert2gray(m);
mm.Save("tiffany2.bmp");
mm = convert2gg(m);
mm.Save("tiffanyG.bmp");
mm = convert2rr(m);
mm.Save("tiffanyR.bmp");
mm = convert2bb(m);
mm.Save("tiffanyB.bmp");
mm = convert2cc(m);
mm.Save("tiffanyC.bmp");
system("Pause");
return 0;
}
ImageMatrix convert2green(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y < m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2convertAndgray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
回覆刪除ImageMatrix mm=ImageMatrix(m.height, m.width);
for(int y=0; y<m.height; y++)
for(int x=0; x<m.rowsize; x+=3){
BYTE B=m.term[y*m.rowsize+x];
BYTE G=m.term[y*m.rowsize+x+1];
BYTE R=m.term[y*m.rowsize+x+2];
BYTE gray=(BYTE)(0.2989*R + 0.5870*G + 0.1140*B+0.5);
mm.term[y*m.rowsize+x]=
mm.term[y*m.rowsize+x+1]=
mm.term[y*m.rowsize+x+2]=gray;
}
return mm;
}
ImageMatrix convert2green(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2blue(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2red(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}
ImageMatrix convert2gg(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2bb(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2rr(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2cc(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x < m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y < m.height / 2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1]
= mm.term[y*m.rowsize + x + 2] = gray;
else{
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R;
}
}
return mm;
}
int main(){
cout<<sizeof(BITMAPFILEHEADER)<<endl;
cout<<sizeof(BITMAPINFOHEADER)<<endl;
ImageMatrix m, mm;
m.Load("tiffany511.bmp");
m.Save("tiffany511(copy).bmp");
mm=convert2gray(m);
mm.Save("tiffany2.bmp");
mm = convert2gg(m);
mm.Save("tiffanyG.bmp");
mm = convert2rr(m);
mm.Save("tiffanyR.bmp");
mm = convert2bb(m);
mm.Save("tiffanyB.bmp");
mm = convert2cc(m);
mm.Save("tiffanyC.bmp");
system("Pause");
return 0;
}
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}
ImageMatrix convert2g(ImageMatrix m){
回覆刪除ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2b(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = 0;
}
return mm;
}
ImageMatrix convert2r(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
mm.term[y*m.rowsize + x] = 0;
mm.term[y*m.rowsize + x + 1] = 0;
mm.term[y*m.rowsize + x + 2] = R;
}
return mm;
}
ImageMatrix convert2gray(ImageMatrix m){
ImageMatrix mm = ImageMatrix(m.height, m.width);
for (int y = 0; y<m.height; y++)
for (int x = 0; x<m.rowsize; x += 3){
BYTE B = m.term[y*m.rowsize + x];
BYTE G = m.term[y*m.rowsize + x + 1];
BYTE R = m.term[y*m.rowsize + x + 2];
BYTE gray = (BYTE)(0.2989*R + 0.5870*G + 0.1140*B + 0.5);
if (y<m.height/2)
mm.term[y*m.rowsize + x] = mm.term[y*m.rowsize + x + 1] =
mm.term[y*m.rowsize + x + 2] = gray;
else{mm.term[y*m.rowsize + x] = B;
mm.term[y*m.rowsize + x + 1] = G;
mm.term[y*m.rowsize + x + 2] = R; }
}
return mm;
}