本文整理汇总了C++中ImageBase::save方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageBase::save方法的具体用法?C++ ImageBase::save怎么用?C++ ImageBase::save使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageBase
的用法示例。
在下文中一共展示了ImageBase::save方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dilatation
void dilatation(int degre, char* outname) {
int w = imIn.getWidth(), h = imIn.getHeight();
for(int x=0;x<w;x++) {
for(int y=0; y<h;y++) {
if(!imIn.getColor()) {
//Image en niveaux de gris
bool change = true;
for(int i=-degre;i<=degre;i++) {
for(int j=-degre;j<=degre;j++) {
if( y+j >= degre && y+j < h-degre && x+i >= degre && x+i < w-degre && imIn[y+j][x+i] < imIn[y][x] ) {
imOut1[y][x] = imIn[y+j][x+i];
change = false;
}
}
}
if(change) {
imOut1[y][x] = imIn[y][x];
}
}
else {
//Image en couleur RGB
bool changeR = true, changeG = true, changeB = true;
for(int i=-degre;i<=degre;i++) {
for(int j=-degre;j<=degre;j++) {
if(y+j >= degre && y+j < h-degre && x+i >= degre && x+i < w-degre) {
if(imIn[3*(y+j)][3*(x+i)] < imIn[3*y][3*x]) {
imOut1[3*y][3*x] = imIn[3*(y+j)][3*(x+i)];
changeR = false;
}
if(imIn[3*(y+j)][3*(x+i)+1] < imIn[3*y][3*x+1]) {
imOut1[3*y][3*x+1] = imIn[3*(y+j)][3*(x+i)+1];
changeG = false;
}
if(imIn[3*(y+j)][3*(x+i)+2] < imIn[3*y][3*x+2]) {
imOut1[3*y][3*x+2] = imIn[3*(y+j)][3*(x+i)+2];
changeB = false;
}
}
}
}
if(changeR) {
imOut1[3*y][3*x] = imIn[3*y][3*x];
}
if(changeG) {
imOut1[3*y][3*x+1] = imIn[3*y][3*x+1];
}
if(changeB) {
imOut1[3*y][3*x+2] = imIn[3*y][3*x+2];
}
}
}
}
if(outname != NULL) imOut1.save(outname);
}
示例2: main
int main(int argc, char **argv)
{
///////////////////////////////////////// Exemple d'un seuillage d'image
char cNomImgLue[250], cNomImgEcrite[250];
int S1, S2, S3, S4;
if (argc < 6 || argc > 7)
{
printf("Usage: ImageIn.pgm ImageOut.pgm Seuil_1 Seuil_2 Seuil_3 [Seuil_4] \n");
return 1;
}
sscanf (argv[1],"%s",cNomImgLue) ;
sscanf (argv[2],"%s",cNomImgEcrite);
sscanf (argv[3],"%d",&S1);
sscanf (argv[4],"%d",&S2);
sscanf (argv[5],"%d",&S3);
if(argc == 7){sscanf (argv[6],"%d",&S4);}
//ImageBase imIn, imOut;
ImageBase imIn;
imIn.load(cNomImgLue);
//ImageBase imG(imIn.getWidth(), imIn.getHeight(), imIn.getColor());
ImageBase imOut(imIn.getWidth(), imIn.getHeight(), imIn.getColor());
if(argc == 6){
for(int x = 0; x < imIn.getHeight(); ++x){
for(int y = 0; y < imIn.getWidth(); ++y)
{
if (imIn[x][y] < S1)
imOut[x][y] = 0;
else if (imIn[x][y] < S2)
imOut[x][y] = 85;
else if (imIn[x][y] < S3)
imOut[x][y] = 170;
else imOut[x][y] = 255;
}
}
}else{
for(int x = 0; x < imIn.getHeight(); ++x){
for(int y = 0; y < imIn.getWidth(); ++y)
{
if (imIn[x][y] < S1)
imOut[x][y] = 0;
else if (imIn[x][y] < S2)
imOut[x][y] = 64;
else if (imIn[x][y] < S3)
imOut[x][y] = 128;
else if (imIn[x][y] < S4)
imOut[x][y] = 192;
else imOut[x][y] = 255;
}
}
}
imOut.save(cNomImgEcrite);
///////////////////////////////////////// Exemple de création d'une image couleur
ImageBase imC(50, 100, true);
for(int y = 0; y < imC.getHeight(); ++y)
for(int x = 0; x < imC.getWidth(); ++x)
{
imC[y*3][x*3+0] = 200; // R
imC[y*3][x*3+1] = 0; // G
imC[y*3][x*3+2] = 0; // B
}
imC.save("imC.ppm");
///////////////////////////////////////// Exemple de création d'une image en niveau de gris
ImageBase imG(50, 100, false);
for(int y = 0; y < imG.getHeight(); ++y)
for(int x = 0; x < imG.getWidth(); ++x)
imG[y][x] = 50;
imG.save("imG.pgm");
ImageBase imC2, imG2;
///////////////////////////////////////// Exemple lecture image couleur
imC2.load("imC.ppm");
///////////////////////////////////////// Exemple lecture image en niveau de gris
imG2.load("imG.pgm");
///////////////////////////////////////// Exemple de récupération d'un plan de l'image
ImageBase *R = imC2.getPlan(ImageBase::PLAN_R);
//.........这里部分代码省略.........
示例3: main
int main(int argc, char **argv)
{
///////////////////////////////////////// Exemple d'un seuillage d'image
char cNomImgLue[250], cNomImgEcrite[250];
int S;
if (argc != 4)
{
printf("Usage: ImageIn.pgm ImageOut.pgm Seuil \n");
return 1;
}
sscanf (argv[1],"%s",cNomImgLue) ;
sscanf (argv[2],"%s",cNomImgEcrite);
sscanf (argv[3],"%d",&S);
//ImageBase imIn, imOut;
ImageBase imIn;
imIn.load(cNomImgLue);
//ImageBase imG(imIn.getWidth(), imIn.getHeight(), imIn.getColor());
ImageBase imOut(imIn.getWidth(), imIn.getHeight(), imIn.getColor());
for(int x = 0; x < imIn.getHeight(); ++x)
for(int y = 0; y < imIn.getWidth(); ++y)
{
if (imIn[x][y] < S)
imOut[x][y] = 0;
else imOut[x][y] = 255;
}
imOut.save(cNomImgEcrite);
///////////////////////////////////////// Exemple de création d'une image couleur
ImageBase imC(50, 100, true);
for(int y = 0; y < imC.getHeight(); ++y)
for(int x = 0; x < imC.getWidth(); ++x)
{
imC[y*3][x*3+0] = 200; // R
imC[y*3][x*3+1] = 0; // G
imC[y*3][x*3+2] = 0; // B
}
imC.save("imC.ppm");
///////////////////////////////////////// Exemple de création d'une image en niveau de gris
ImageBase imG(50, 100, false);
for(int y = 0; y < imG.getHeight(); ++y)
for(int x = 0; x < imG.getWidth(); ++x)
imG[y][x] = 50;
imG.save("imG.pgm");
ImageBase imC2, imG2;
///////////////////////////////////////// Exemple lecture image couleur
imC2.load("imC.ppm");
///////////////////////////////////////// Exemple lecture image en niveau de gris
imG2.load("imG.pgm");
///////////////////////////////////////// Exemple de récupération d'un plan de l'image
ImageBase *R = imC2.getPlan(ImageBase::PLAN_R);
R->save("R.pgm");
delete R;
return 0;
}