0
void sharpen(IplImage *in,IplImage *out)
{
    int r=in->height;
    int c=in->width;
    int st=in->widthStep;
    int i,j;
    for(i=1;i<r-1;i++)
    {
        uchar *cur=(uchar *)(in->imageData+i*st);
        uchar *pre=(uchar *)(in->imageData+(i-1)*st);
        uchar *next=(uchar *)(in->imageData+(i+1)*st);
        uchar *output=(uchar *)(out->imageData+i*st);
        for(j=3;j<c*3-3;j++)
        {
            *output=uchar(5*cur[j]-cur[j-3]-cur[j+3]-pre[j]-next[j]);
            *output++;
        }
    }

}

ラプラシアンを使用した OpenCV 画像のシャープ化... 間違いを見つけていただけませんか?

4

1 に答える 1

0

明らかな間違いの 1 つは、次のことです。

        *output++;

次のようにする必要があります。

        output++;

つまり、ポインターを逆参照するのではなく、ポインターをインクリメントするだけです。しかし、それがあなただけのバグではないと思います。

于 2013-10-07T09:28:30.033 に答える