opencv 提取选中区域内指定hsv颜色的水印

基于《QT 插件化图像算法研究平台》做的功能插件。提取选中区域内指定hsv颜色的水印。

  《QT 插件化图像算法研究平台》有个HSV COLOR PICK功能,可以很直观、方便地分析出水印 的hsv颜色,比如, 蓝色:100,180,0,255,100,255。

    然后利用 opencv 提取选中区域内指定hsv颜色的水印。

   为下一步水印定位与去除提供mask。

《QT 插件化图像算法研究平台》有文件列表、图片展示、图片框选、窗口图像同步移动与放大等功能。

操作步骤:

1、在文件列表选中文件。

2、把图像移动、并放大至合适位置。

鼠标左键可拖动图片、鼠标滚轮可缩放图片。上下两窗口图片自动同步移动与缩放。

3、框选ROI

鼠标右键可画出“选择框”,按住鼠标右键,可移动与缩放“选择框”。

4、提取选中区域内指定hsv颜色的水印。

在功能列表里,选择“deWaterMark”,操作:"exec"

deWaterMark的参考代码如下:

void deWaterMark(Mat &input,Mat &output,Mat &src,string arg)
{
    Mat mask;
    colorHsvMask(input,mask,src,arg); //生成指定hsv颜色的mask
    getSelection(mask,mask,src,arg); //获取选中区域
    matClipboard= mask;//存放至剪贴板
    output= mask;
}

void colorHsvMask(Mat &input,Mat &output,Mat &,string arg)
{
//生成指定hsv颜色的mask,参数:hmin,hmax,smin,smax,vmin,vmax
//   蓝色:100,180,0,255,100,255
//用途:1、匹配  2、去水印
    vector<string> argVec;
    splitArg(arg,argVec);
    auto hmin=atoi(argVec[0].c_str());
    auto hmax=atoi(argVec[1].c_str());
    auto smin=atoi(argVec[2].c_str());
    auto smax=atoi(argVec[3].c_str());
    auto vmin=atoi(argVec[4].c_str());
    auto vmax=atoi(argVec[5].c_str());

    Mat hsv;
    cvtColor(input, hsv, COLOR_BGR2HSV);
    Mat mask;
    inRange(hsv, Scalar(hmin, smin, vmin), Scalar(hmax, smax, vmax), mask);
    output=mask;

}

void getSelection(Mat &input,Mat &output,Mat &,string )
{

    //获取选中区域
    QRect selectRect= processWinGetSelection();
    if(selectRect.width()==0)
    {
        debugX(" no selection "  );
        output=input;
        return;
    }

    auto topLeft=selectRect.topLeft();
    auto bottomRight=selectRect.bottomRight();

    int x=topLeft.x();
    int y=topLeft.y();
    int x1=bottomRight.x();
    int y1=bottomRight.y();

    if(x<0)x=0;
    if(y<0)y=0;
    if(x1>input.cols)x1=input.cols;
    if(y1>input.rows)y1=input.rows;
    auto roi=input(Rect(x,y,x1-x,y1-y));

    output=roi.clone();
}

5、从剪贴板查看 提取的水印

《QT 插件化图像算法研究平台》有剪贴板功能,可查看剪贴板中的图片。

后期预告:

1、利用提取的水印,在图像中定位水印位置。

2、如何获取 水印 的hsv颜色

《QT 插件化图像算法研究平台》有个HSV COLOR PICK功能,可以很直观、方便地分析出水印 的hsv颜色,比如, 蓝色:100,180,0,255,100,255

3、自动去除水印

4、自动保存去除水印的图片

《QT 插件化图像算法研究平台》其它内容:

Opencv 图像金字塔----高斯和拉普拉斯

OpenCV仿Photoshop曲线调整图像亮度与色彩

QT 插件化图像算法软件架构

Opencv 图像暗通道调优去雾

opencv 提取选中区域内指定 hsv 颜色的水印

Opencv 手工选择图片区域去水印

Opencv 基于文字检测去图片水印

QT 插件化图像算法研究平台

Opencv 图像亮度调节的几种方式

Opencv使用QT的线程注意事项

欢迎广大朋友沟通交流,微信/QQ:23245175,加好友,请备注:插件软件。

猜你喜欢

转载自blog.csdn.net/stonewu/article/details/132641456