Маскировка изображения и видео в opencv c ++ - PullRequest
0 голосов
/ 01 ноября 2018

Я новичок в обработке изображений, особенно в openCV C ++. У меня проблема с работой. В C # с EmguCV возможно сделать маскировку в файлах изображений и видео на основе ROI. Мой вопрос, возможно ли сделать маски таким же образом в OpenCV C ++? , Я пытался использовать ROI в OpenCV C ++, но в результате только обрезка изображения не так, как в примере, который я приложил Здесь . Я также прикрепил псевдокод маскирования в C # с EmguCV, но пока не нашел в C ++ версии. Я с нетерпением жду любого ответа. Спасибо

pixelSize, out long processingTime)
    {


        int x = imageInput.Width / pixelSize;
        int y = imageInput.Height / pixelSize;

        Mat imageBlock = new Mat();
        Point darkestBlockPoint = new Point();

        int darkestBlockValue = 100000;
        //AppendLogTxt("", "y,x,value", "masking");
        for (int i = marginV; i < y - marginV; i++)
        {
            for (int j = marginH; j < x - marginH; j++)
            {
                imageBlock = new Mat(imageInput, new Rectangle(j * pixelSize, i * pixelSize, pixelSize, pixelSize));
                MCvScalar avg = CvInvoke.Mean(imageBlock);

                //AppendLogTxt("", i.ToString() + "," + j.ToString() + "," + avg.V0.ToString(), "masking");

                if ((int)avg.V0 < darkestBlockValue)
                {
                    darkestBlockValue = (int)avg.V0;
                    darkestBlockPoint.X = j;
                    darkestBlockPoint.Y = i;
                }

            }
        }

        darkestBlockPoint.X = darkestBlockPoint.X * pixelSize + pixelSize / 2;
        darkestBlockPoint.Y = darkestBlockPoint.Y * pixelSize + pixelSize / 2;

        return darkestBlockPoint;
    }
...