0

我开始使用 c++ 在 Eclipse 中使用 Opencv,我一直在尝试滚动二进制图像,但出现错误。二值图像只有一个通道 (1,0) 或 (0,255)。在我的if陈述中,我得到的结果是 1 或 254 之类的值,我希望它向我显示具有白色值的像素。

这里的代码:

IplImage *img=cvLoadImage("/home/delfin/Imágenes/bw.JPG");
IplImage *gray;
IplImage *thresh;
int height=img->height; //altura de la imagen en píxeles
int width=img->width;   //anchura de la imagen en píxeles
int anchura_fila =img->widthStep; //calculamos el valor del paso
int i,j,etiqueta;
uchar* data=(uchar *) img->imageData; //cargamos los datos de la imagen en data
printf("Estamos procesando una imagen de %dx%d píxeles \n",width,height);

while(1)
{
    gray=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);
    thresh=cvCreateImage(cvSize(img->width,img->height),IPL_DEPTH_8U,1);

    cvCvtColor(img,gray, CV_RGB2GRAY);
    cvThreshold(gray,thresh,35,255,THRESH_BINARY);
    for(i=0;i<height;i++)
    {
        for(j=0;j<width;j++)
        {
            if(data[i*anchura_fila+j]!=0) //Si el pixel no es negro
            {
                printf("El píxel %d %d tiene un valor de: %d    \n",j,i,data[i*anchura_fila+j]);
            }
        }
    }
    cvShowImage("original", img);
    char c = cvWaitKey(0);
    if(c == 27) break;
}

这里是部分结果:

El píxel 523 520 tiene un valor de: 255 
El píxel 524 520 tiene un valor de: 255 
El píxel 525 520 tiene un valor de: 254 
El píxel 526 520 tiene un valor de: 254 
El píxel 527 520 tiene un valor de: 254 
El píxel 528 520 tiene un valor de: 255 
El píxel 529 520 tiene un valor de: 255 
El píxel 530 520 tiene un valor de: 255 
El píxel 531 520 tiene un valor de: 255 
El píxel 532 520 tiene un valor de: 255 
El píxel 533 520 tiene un valor de: 255 
El píxel 534 520 tiene un valor de: 255 
El píxel 535 520 tiene un valor de: 255 
El píxel 536 520 tiene un valor de: 255 
El píxel 537 520 tiene un valor de: 255 
El píxel 538 520 tiene un valor de: 255 
El píxel 539 520 tiene un valor de: 255 
El píxel 540 520 tiene un valor de: 255 
El píxel 541 520 tiene un valor de: 255 
El píxel 542 520 tiene un valor de: 255 
El píxel 0 521 tiene un valor de: 255 
El píxel 1 521 tiene un valor de: 255 
El píxel 2 521 tiene un valor de: 255 
El píxel 3 521 tiene un valor de: 255 
El píxel 4 521 tiene un valor de: 255 
El píxel 5 521 tiene un valor de: 255 
El píxel 264 521 tiene un valor de: 1 
El píxel 265 521 tiene un valor de: 1 
El píxel 266 521 tiene un valor de: 1 
El píxel 477 521 tiene un valor de: 255 
4

1 回答 1

1

我认为虽然您假设 BW.JPG 是二进制图像,但 JPEG 压缩导致创建的值略有不同,接近 0 或 255。为了测试这一点,您可以在创建后将图像保存为不压缩的 TIFF 或 BMP 文件它,然后在您的代码中使用它。

于 2013-07-25T01:53:54.090 回答