Programmation en c++

Bonjour,

j'ai un programme en c++ en utilisant la librairie openCV mais j'arrive pas à le compileri l me déclare l'erreur suivante
error C2446: ':' : no conversion from 'const char *' to 'const char'
There is no context in which this conversion is possible.
je vous donne aussi le code source que j'essaye à le compiler
#include <cv.h>
#include <highgui.h>
#include <math.h>
#include <cxcore.h>
#include <iostream>
int main( int argc,const char* argv )
{
CvPoint center;
double scale=-3;
IplImage *image =
cvLoadImage(argc == 2 ? argv[1] : "lena.jpg");

if(!image) return -1;

center = cvPoint(image->width/2,image->height/2);

for(int i=0;i<image->height;i++)
for(int j=0;j<image->width;j++)
{
double dx=(double)(j-center.x)/center.x;

double dy=(double)(i-center.y)/center.y;
double weight=exp((dx*dx+dy*dy)*scale);
uchar* ptr = &CV_IMAGE_ELEM(image,uchar,i,j*3);
ptr[0] = cvRound(ptr[0]*weight);
ptr[1] = cvRound(ptr[1]*weight);
ptr[2] = cvRound(ptr[2]*weight);
}
cvNamedWindow( "test", 1 );
cvShowImage( "test", image );
cvWaitKey();
return 0;
}
l'erreur est dans la ligne 10.
merci
Configuration: Windows XP
Firefox 1.5.0.6

5 réponses

  1. Salut,

    Essaye d'enlever le "const" dans cette ligne
    int main( int argc,const char* argv )
    0
    1. merci pour la réponse,j'essaye d'appliquer votre proposition mais sans résultat, l'erreur persiste!!!!
      0
      1. Essaie ça:

        int main(int argc, char *argv[])
        0
        1. merci, maintenat ça marche!!!
          0
          1. bonjour,
            c'est encore moi!!
            bon, j'ai un autre code à compiler ,le voilà
            // open.cpp : Defines the entry point for the console application.
            //

            #include "stdafx.h"
            #include <cv.h>
            #include <highgui.h>
            #include <cxcore.h>

            int _tmain(int argc, _TCHAR* argv[]){

            IplImage* frame = cvLoadImage("lena.png");

            IplImage* objet = cvCreateImage( cvGetSize(frame),
            IPL_DEPTH_8U , 1 );
            IplImage* hsvFrame = cvCreateImage( cvGetSize(frame),
            IPL_DEPTH_8U, 3 );

            //Conversion BGR -> HSV
            cvCvtColor( frame, hsvFrame, CV_BGR2HSV );
            //Retourne l’image par rapport à X
            cvFlip( hsvFrame, NULL, 0);
            //Pour chaque pixel…
            for(int y = 0; y < (cvGetSize(frame).height); y++) {
            for(int x = 0; x < (cvGetSize(frame).width); x++) {
            //…si HSV entre les seuils max et min…
            if(
            //test minH (=0)
            ((hsvFrame->imageData + hsvFrame->widthStep*y))[x*3] > 0 &&
            //test maxH (=50)
            ((hsvFrame->imageData + hsvFrame->widthStep*y))[x*3] < 50 &&
            //test minS (=100)
            (hsvFrame->imageData + hsvFrame->widthStep*y)[(x*3)+1] >100
            )
            //…placer un point blanc dans l’image « objet ».
            ( objet->imageData + objet->widthStep*y)[x] = 255;
            //Sinon, placer un point noir.
            else
            ( objet->imageData + objet->widthStep*y)[x] = 0;
            }
            }
            //Libérer l’espace des images
            cvReleaseImage( &frame );
            cvReleaseImage( &hsvFrame );
            cvReleaseImage( &objet );
            //Libérer la caméra

            return 0;
            }

            j'ai aucun erreur .mais à l'exécution il m'affiche la fenêtre suivante.
            Bad argument (Array should be Cvmat or IplImage in function CvgetSize).
            0