0

c++ を使用して Eclipse で Opencv を使い始めました。バイナリ イメージをスクロールしようとしましたが、エラーが発生しました。バイナリ イメージには、1 つのチャネル (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 に答える