Ich habe ein Bild Ich versuche zu segmentieren, indem Sie jedes Pixel entweder rot grün oder blau färben. Ich habe einen Konfidenzwert für jedes Pixel berechnet und möchte die Alphatransparenz des Pixels anpassen, um das Vertrauen widerzuspiegeln, d. H. Eine niedrige Konfidenz bedeutet fast transparent. Gibt es eine Möglichkeit, dies in OpenCV zu tun? Wenn nicht, kann jemand eine minimal-invasive Bibliothek vorschlagen (C++)?OpenCV: Wie Alpha Transparenz eines Pixels einstellen
I haben versucht, einen 4-Kanal-8-Bit unter Verwendung Mat
wie durch Aurellius vorgeschlagen, ist hier der Code:
cv::Mat m = cv::Mat(20,20, CV_8UC4);
for(int i = 0; i < m.rows; i++){
for(int j = 0; j < m.cols; j++){
Vec4b& v = m.at<Vec4b>(i,j);
v[0] = 255;
v[1] = 0;
v[2] = 0;
v[3] = 0.5;
}
}
imwrite("alpha.png", m);
namedWindow("m");
imshow("m", m);
waitKey(0);
Die gezeigte Abbildung nur alle blau (keine Transparenz) und das Bild nur vollständig transparent.
Dies scheint nicht zu funktionieren, siehe aktualisierte Frage – Aly
@Aly ich versuchte diese Antwort und es hat funktioniert. – Kiran