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.
A votre avis, ya une raison pour que ça ne fonctionne pas avec une trop grande résolution ?Code:
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]; }
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 !