Ma question s'adresse aux experts d'Opencv, j'ai détecté des lignes de route (lignes gauche et droite) alors je visais à peindre la zone de la route avec du bleu semi-transparent. Alors je:poly opencv semi-transperent
cv::fillPoly(image, ppt, npt, 1, CV_RGB(0, 0,200), lineType);
ppt- contiennent les points à droite et à gauche, nombre de points
TNP,Mais, ce que je l'ai eu zone remplie sur la route qui n'est pas mon but.
Donc, ma question est là une solution pour peindre la zone de la route avec semi-transparent? On m'a dit d'ajouter un autre canal comme:
cv::Mat channel[3];
split(image, channel);
channel[0] = cv::Mat::zeros(image.rows, image.cols, CV_8UC1);
merge(channel, 3, image);cv::imshow("kkk",image);
Mais la chose est que je suis toute l'image semi-transparente et je ne veux que la zone de la route. Toutes les idées ont apprécié !!
grâce
peindre le poly à une image distincte avec un fond noir. puis pour chaque pixel: si le pixel de polyimage n'est pas noir: image-pixel = 0.5 * imagepixel + 0.5 * polyimage-pixel. au lieu de 0.5 vous pouvez utiliser n'importe quel facteur de transparence x et (1-x) – Micka
Salut Micka, merci beaucoup pour la réponse précieuse. Où puis-je utiliser l'image-pixel? Y a-t-il une fonction pour produire un pixel d'image? j'apprécie si vous pouvez donner un segment de code? – Adam