Texture representation causes problems

i cant find he misstake i did. Pls Help me.

My Problems are:
-Image is printet nearly white (95% with some blue/red/green pixels) but he images is nearly colored more hen 90%
-Texture edges arn’t parse on Images edges like:

Correct edges parse:
|| _ |||
| _ |||

and it is shown as:
| /_ /_ /|
|/ _ /
/ _|

Image is png and has w:505 and h:378

My Code:
Image load:

cv::Mat *GroundImage;

    delete GroundImage;
cv::Mat load=cv::Mat(cv::imread("download.png"));
cvtColor(load, load, CV_BGR2RGB);

GroundImage=new cv::Mat(load);

Set Image in Opengl window (it is inside a winform)

void SetGround(cv::Mat *Image){

        delete tex;
    tex=new GLuint ();
    // Create Texture
    glGenTextures(1, tex);
    glBindTexture(GL_TEXTURE_2D, *tex); // 2d texture (x and y size)
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); // scale linearly when image bigger than texture
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); // scale linearly when image smalled than texture
      // 2d texture, level of detail 0 (normal), 3 components (red, green, blue), x size from image, y size from image,
    // border 0 (normal), rgb color data, unsigned byte data, and finally the data itself.
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, GroundImage->cols, GroundImage->rows, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, GroundImage->data);            
    glBindTexture(GL_TEXTURE_2D, *tex); // choose the texture to use.

and draw

void drawGround()
        glColor3f(1,1,1); // set global color to white, otherwise this color will be (somehow) added to the texture
        float x = 10.0;
        float y = 10.0;

        glTexCoord2f(0.0f, 0.0f); glVertex3f(-x, -y, 0.0f); 
        glTexCoord2f(0.0f, 1.0f);glVertex3f( x, -y, 0.0f);
        glTexCoord2f(1.0f, 1.0f);glVertex3f( x, y, 0.0f); 
        glTexCoord2f(1.0f, 0.0f);glVertex3f(-x, y, 0.0f); 

If the image data is RGB (3 bytes per pixel) and the image width isn’t a multiple of 4, then you’ll need to use:

glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

prior to the glTexImage2D() call.

The default alignment is 4 bytes.

Thanks, very nice.