Перейти к содержимому
Compvision.ru
Игорь

Замена одного цвета другим.

Recommended Posts

Всем привет!!!! есть задачка не могу спаравиться!!!

Имеется монохромная картинка, черный текст на белом фоне!!!

1. надо заменить черный цвет на красный(например)!!!

2. И возможно ли вообще заменить задний белый фон на прозрачный!!!

картинка вот такого типаK3o5SsmT.jpg

Заранее спасибо!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тебе нужно получить доступ к матрице

http://www.troyashka.ru/2011/01/opencv.html

Пункт 14, а лучше почитать с начала.

Спасибо разобрался!!! для конвектирование цветов теперь буду делать как-то так

  

for( int y=0; y<rgb->height; y++ ) {

               uchar* ptr = (uchar*) (rgb->imageData + y * rgb->widthStep);

               for( int x=0; x<rgb->width; x++ ) {

                      // 3 канала

                      // ptr[3*x] = 0;     // B - синий

                      // ptr[3*x+1] = 0;   // G - зелёный

                      //  ptr[3*x+2] = 255; // R - красный


                   if (ptr[3*x+2]==0)

                   {ptr[3*x+2]=255;}


                       qDebug("%d,%d,%d",ptr[3*x],ptr[3*x+1],ptr[3*x+2] );

               }

       }

А вот с прозрачностью так и не знаю куда рыть!!!!! может кто-то уже имел опыт с прозрачностью???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
note that the functions do not support alpha-transparency - when the target image is 4-channnel, then the color[3] is simply copied to the repainted pixels. Thus, if you want to paint semi-transparent shapes, you can paint them in a separate buffer and then blend it with the main image.

cvAddWeighted

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет!!!! есть задачка не могу спаравиться!!!

Имеется монохромная картинка, черный текст на белом фоне!!!

1. надо заменить черный цвет на красный(например)!!!

Имеется похожая проблема, но с более простой задачей - есть монохромное изображение (черные и белые пиксели).

Необходимо инвертировать цвета. Черные пиксели в белые, а белые в черные. Нетли часом в OpenCV готовой функции? Или придется делать что-то навроде кода приведенного топикстартером?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Mat Img;
.......
.......
Img=255-Img;[/code]

пойдет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Mat Img;

.......

.......

Img=255-Img;

пойдет?

как вариант, да.

А вот такая функция поможет?

cvNot(img, img)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это же bit-wise inversion , то есть 00110011 -> 11001100

если такое пойдет, то поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

это же bit-wise inversion , то есть 00110011 -> 11001100

если такое пойдет, то поможет.

Должно пойти - у меня картинка после бинаризации. Я думаю применив эту функцию я получу именно полную инверсию пикселей. Вот нашел пример применения данной функции (там ещё много разного помимо неё:)):

Инверсия и прочее

Вот сам код:


Inverting the image such as giving a NOT logic operation on each element matrix.



#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

int main(int argc,char* argv[])

{

IplImage *img = cvLoadImage("Step_forward.jpg");

IplImage *img2= cvCreateImage( cvGetSize(img), 8,1 );

img2 = cvCloneImage(img);

cvNot(img2, img2);

cvShowImage("Image:",img);

cvShowImage("Negative", img2);

cvWaitKey();

cvReleaseImage(&img);

cvReleaseImage(&img2);

return 0;

}

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для целых это пойдет, а по поводу float или double не могу сказать точно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для целых это пойдет, а по поводу float или double не могу сказать точно.

Это да, согласен. Но в моем случае - как раз целые, так что попробую завтра применить:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Получилось. Белые пиксели теперь черные, а черные - белые!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×