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

пытается применить порог Оцу к одному компоненту "L" цветового пространства LAB.Но я не могу понять, как это указать в OpenCV синтаксически.

1 Ответ

0 голосов
/ 03 октября 2018

C ++ код разбивает изображение Lab на отдельные каналы.

#include <iostream>
using namespace std;

#include <opencv2/opencv.hpp>
using namespace cv;
#pragma comment(lib, "opencv_world340.lib")

int main(void)
{
Mat img = imread("star.png", 1);

if (img.empty())
{
    cout << "Could not read image file." << endl;
    return 1;
}

Mat Lab;
Mat Lab_channels[3];

cvtColor(img, Lab, COLOR_BGR2Lab);

split(Lab, Lab_channels);

threshold(Lab_channels[0], Lab_channels[0], 127, 255, THRESH_OTSU);

return 0;
}

Этот код C ++ использует экстракт канала, чтобы получить только первый канал (канал 0).

#include <iostream>
using namespace std;

#include <opencv2/opencv.hpp>
using namespace cv;
#pragma comment(lib, "opencv_world340.lib")

int main(void)
{
Mat img = imread("star.png", 1);

if (img.empty())
{
    cout << "Could not read image file." << endl;
    return 1;
}

Mat Lab;
Mat Lab_channel_0;

cvtColor(img, Lab, COLOR_BGR2Lab);

extractChannel(Lab, Lab_channel_0, 0);

threshold(Lab_channel_0, Lab_channel_0, 127, 255, THRESH_OTSU);

return 0;
}

Попробуйте это.

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