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

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Essaye d'enlever le "const" dans cette ligne
    int main( int argc,const char* argv )
    1. merci pour la réponse,j'essaye d'appliquer votre proposition mais sans résultat, l'erreur persiste!!!!
      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).