SSorry für mein schlechtes Englisch. Ich habe ein Bild, das 3 Kreise unterschiedlicher Farbe zeigt, eine rote, eine grüne und eine blaue und ich kann dieses Bild in den 3 Kanälen anzeigen, aber sie erscheinen weiß und in dem Code zeige ich einen Bildanruf "Kopie R" und ich an Ich weiß nicht, wie man diese Kopie R in ein anderes Bild mit einer beliebigen Farbe bringt. Ich möchte das Originalbild überlappen und die rote Farbe ändern. Wie kann ich das machen ???OpenCV konvertieren eine Farbe in eine andere
dies ist mein Code, sorry das erste Mal, dass ich eine Frage stellen und nicht wissen, wie
richtig veröffentlichen#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#define w 400
using namespace cv;
/// Funktion Header
void MyFilledCircle(Mat img, Point center);
void MyFilledCircle1(Mat img, Point center);
void MyFilledCircle2(Mat img, Point center);
int main(void) {
//![create_images]
char window[] = "Original";
/// Create black empty images
Mat image = Mat::zeros(w, w, CV_8UC3);
/// 1.b. Creating circles
MyFilledCircle(image, Point(200, 200));
MyFilledCircle1(image, Point(150, 150));
MyFilledCircle2(image, Point(250, 250));
Mat channel[3];
split(image, channel);
//channel[0] = Mat::zeros(image.rows, image.cols, CV_8UC1);
merge(channel, 3, image);
Mat imageHSV;
Mat copy;
imshow(window, image);
//imshow("Color 1", imageHSV);
inRange(image, Scalar(0, 0, 255), Scalar(0, 0, 255), copy);
imshow("copy R", copy);
imshow("B", channel[0]);
imshow("G", channel[1]);
imshow("R", channel[2]);
//imshow("0", canal0);
//imwrite("dest.jpg", image);
waitKey(0);
return(0);
}
/// Function Declaration
//![myfilledcircle]
void MyFilledCircle1(Mat img, Point center)
{
circle(img,
center,
50,
Scalar(0, 255, 0),
FILLED,
LINE_8);
}
void MyFilledCircle(Mat img, Point center)
{
circle(img,
center,
50,
Scalar(0, 0, 255),
FILLED,
LINE_8);
}
void MyFilledCircle2(Mat img, Point center)
{
circle(img,
center,
50,
Scalar(255, 0, 0),
FILLED,
LINE_8);
}
ändern die Zahlen innerhalb der 'Scalar' Typen und Sie werden verschiedene Farben. –
Wenn Sie den Wert des Skalars im In-Range-Betrieb ändern wollen, habe ich es bereits ausprobiert und es hat immer noch nicht funktioniert –