Comment utiliser éroder et se dilatent en fonction opencv?
Je suis d'essayer d'éliminer la chose autour de ce numéro s'éroder et se dilatent processus. J'ai essayé mais rien ne s'est passé. J'ai changé les valeurs, juste pour voir si changerait quelque chose, mais encore une fois, rien n'a changé. L'image continue comme dans le lien ci-dessus. À propos de cet paramètres... j'ai lu la documentation mais vous ne comprenez pas bien (comme vous pouvez le voir, je me disais dans la fonction). Ce que je fais mal?
l'image: https://docs.google.com/file/d/0BzUNc6BOkYrNeVhYUk1oQjFSQTQ/edit?usp=sharing
le code:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main ( int argc, char **argv )
{
Mat im_gray;
Mat img_bw;
Mat img_final;
Mat im_rgb = imread("cam.jpg");
cvtColor(im_rgb,im_gray,CV_RGB2GRAY);
adaptiveThreshold(im_gray, img_bw, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 105, 1);
dilate(img_bw, img_final, 0, Point(-1, -1), 2, 1, 1);
imwrite("cam_final.jpg", img_final);
return 0;
}
Donc, nous allons commencer à partir de la documentation docs.opencv.org/modules/imgproc/doc/... donnez-moi un instant...
OriginalL'auteur U23r | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Selon officiel docs, le troisième argument doit être le noyau (ou élément de structuration). Vous êtes actuellement passage de 0:
Essayez de réécrire cette façon:
Dans ce cas, un défaut 3x3 noyau sera utilisé.
Qui crée un vide
cv::Mat
. Selon les docs, "sielement=Mat()
, 3 x 3 rectangulaire élément structurant est utilisé."OriginalL'auteur Esenti
Noyau est essentiellement une matrice. Ce nombre est multiplié ou superposée sur la matrice d'entrée(image) pour produire le résultat désiré modifié(dans ce cas dilatée) de la matrice(de l'image).
Essayez de modifier les paramètres de
Mat()
dansdilate(img_bw, img_final, Mat(), Point(-1, -1), 2, 1, 1);
vous êtes fondamentalement changer le nombre de pixels (largeur et hauteur) du noyau, qui va changer la dilatation de l'effet sur l'image originale.
Donc dans les paramètres de
dilate
vous utilisezMat()
au lieu d'un nombre comme déjà indiqué par esenti.OriginalL'auteur Tarun