Ejemplo n.º 1
0
int process(Mat &src,Mat &mask)
{
    for (int i=0; i<src.rows; i++)
    {
        Mat line(src.row(i));
        Mat lineMask(mask.row(i));
        int left=0,right=0,flag=0;
        for (int j=0; j<mask.cols; j++)
        {
            if (lineMask.at<uchar>(0,j)==255&&flag==0)
            {
                flag=1;
                left=j;
            }
            if (lineMask.at<uchar>(0,j)==0&&flag==1)
            {
                right=j;
                break;
            }
        }
        int width=right-left;
        if (width==0)
        {
            continue;
        }
        if (width>left)
        {
            cout<<"Warning Ovelflow"<<endl;
            //return 1;
        }
        /*
         for (int j=0; j<min(left,width) ;j++)
         {
         line.at<Vec3b>(0, j+left)=line.at<Vec3b>(0,left-j-1);
         }
         if (width>left)
         {
         for (int j=0; j<=min(right,width-left); j++)
         {
         line.at<Vec3b>(0, right-j)=line.at<Vec3b>(0, right+j+1);
         }
         }
        */
        for (int j=1; j<=min(right, width); j++)
        {
            line.at<Vec3b>(0, right-j)=line.at<Vec3b>(0, right+j);
        }
    }
    return 1;
}
Ejemplo n.º 2
0
void Minitel::noLineMask() {
    lineMask(LINE_MASK_OFF);
}
Ejemplo n.º 3
0
void Minitel::lineMask() {
    lineMask(LINE_MASK_ON);
}