Я бы использовал этот код,
Сначала загрузите ваше изображение:
IplImage *myImage;
myImage = cvLoadImage("/path/of/your/image.jpg");
Затем используйте маску, подобную этой, чтобы выбрать цвет, вам следует обратиться к документации. Далее я хочу выбрать синий (не забывайте, что в OpenCV изображения имеют формат BGR, поэтому 125,0,0 - синий (соответствует нижней границе), а 255,127,127 - синий с определенным допуском и это верхняя граница.
Я выбрал нижнюю и верхнюю границу с допуском, чтобы взять весь синий цвет вашего изображения, но вы можете выбрать все, что захотите ...
cvInRangeS(image,
cvScalar(125.0, 0.0, 0.0),
cvScalar(255.0, 127.0, 127.0),
mask
);
Теперь мы выбрали маску, давайте обратим ее (так как мы не хотим сохранять маску, но удалить ее)
cvNot(mask, mask);
А затем скопируйте ваше изображение с маской,
IplImage *myImageWithTransparency; //You may need to initialize it before
cvCopy(myImage,myImageWithTransparency,mask);
Надеюсь, это поможет,
Пожалуйста, обратитесь к OpenCVDocumentation для получения дополнительной информации
Вот оно
Julien