Bonjour à tous.

Je cherche une solution pour transformer mon image en noir et blanc. J'ai déjà trouvé pour avoir une image en niveau de gris, mais je ne veux vraiment que du noir et du blanc, de manière a repérer les éléments foncés facilement sur une image. (si possible avec un seuil à choisir).

Merci !

Edit : Bon en fait j'ai trouvé une méthode pour augmenter le contraste d'une image, et ça a l'air de fonctionner, cependant, ça plante quand la résolution de l'image est trop grande, ce qui m'arrange pas des masses...

Voici la méthode.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-(void)cvMatToBlackAndWhite
{
    [self UIImageFromCVMat];
    cv::Mat image = [self myMat];
    int alpha = 2.0;
    int beta = 50;
 
    cv::Mat new_image = cv::Mat::zeros( image.size(), image.type() );
    /// Do the operation new_image(i,j) = alpha*image(i,j) + beta
    for( int y = 0; y < image.rows; y++ ){
        for( int x = 0; x < image.cols; x++ ){
            for( int c = 0; c < 3; c++ ) {
                new_image.at<cv::Vec3b>(y,x)[c] = cv::saturate_cast<uchar>( alpha*( image.at<cv::Vec3b>(y,x)[c] ) + beta );
            }
        }
    }
    [self setMat:new_image];
}
A votre avis, ya une raison pour que ça ne fonctionne pas avec une trop grande résolution ?
Je précise :
400px*3000px, ça ne passe pas.
200px*1500px, ça ne passe pas.
67px*500px, ça passe !
330px*442px, ça passe !

J'essaierai avec d'autres résolutions Lundi pour voir la limite.

Je précise aussi que l'algo tourne sur un simulateur d'iPhone, donc ça peut être un soucis de puissance du simu.

Merci !