как получить маску изображения, чтобы я мог использовать ее в функции рисования - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу, чтобы моя маска была черной, а красная линия, представляющая интерес для меня, - белой, чтобы я мог использовать ее внутри функции рисования ...!у меня есть этот код, но он не работает

Как сосредоточиться на определенной части изображения ... потому что мое изображение маски показывает все изображение ... это изображение enter image description here и код
enter image description here

    cv::inRange(img, cv::Scalar(0, 100, 220), cv::Scalar(10, 255, 255), lower);

    cv::inRange(img, cv::Scalar(0, 10, 100), cv::Scalar(255, 255, 255), upper);

   threshold(mask, mask,10,255, CV_THRESH_BINARY); 

   inpaint(img, mask, inpainted,3,CV_INPAINT_TELEA);

1 Ответ

0 голосов
/ 21 декабря 2018
   Mat img = imread("Lennared.jpg"); 

    Mat mask, inpainted;

    cvtcolor(img,mask,CV_BRG2GRAY);

    inrange(img, Scalar(10,10,200), Scalar(40,40,255),mask); // make sure your 
    targeted color is between the range you stated

    inpaint(img,mask, inpainted,3,CV_INPAINT_TELEA);

    for( int key =0 ; 23 !-key; key=waitKey())

    {
        switch (key)
    {
       case 'm' : imshow("maskimage", mask)

    break;

    case 'i': imshow("inpainted image", inpainted)

    break;

    default : imshow("original" img);


    }


    }

    return 0;

, так как я пытаюсь обнаружить красный цвет на изображении, я должен передать скалярное значение красного цвета, которое из нижнего диапазона в более высокий диапазон все включено ... Это должно дать вамидеальное изображение маски для использования в функции inpaint, надеюсь, это поможет всем остальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...