DrGraph图形博士

导航

高拍仪图片编辑功能

今天完成主要图片功能

图片功能主要包括以下几项:

  1. 获取图片

图片获取方式有4种:

1. 自视频预览拍照

2. 打开已有文件

3. 自剪贴板中复制图片

4. 屏幕截图

后续还可以加上第5种方式:

扫描仪扫描得到图片

除通过上面界面操作外,还可在图片编辑状态下,选择缩略图打开目标文件

  1. 拖动、缩放

这个简单

  1. 编辑

看代码就知道有哪些功能了

        if (16 == tag) // 自动对比度

            FQaImage->DoQaLight((128 - FQaImage->DoQaMean()) / 4, 120);

        if (14 == tag) // 增加对比度

            FQaImage->DoQaLight(0, 10);

        if (15 == tag) // 减少对比度

            FQaImage->DoQaLight(0, -10);

        if (20 == tag) // 颜色取反

            FQaImage->DoQaNegative();

        if (21 == tag) // 灰度图转化

            FQaImage->DoQaGrayScale();

        if (22 == tag) // 羽化效果

            FQaImage->DoQaDither();

        if (23 == tag) { // 逆时针旋转

            FQaImage->DoQaRotateLeft();

            SwapWidthAndHeight();

        }

        if (24 == tag) { // 顺时针旋转

            FQaImage->DoQaRotateRight();

            SwapWidthAndHeight();

        }

        if (25 == tag) { // 旋转180度

            FQaImage->DoQaRotateRight();

            FQaImage->DoQaRotateRight();

        }

        if (26 == tag) // 水平翻转

            FQaImage->DoQaMirror();

        if (27 == tag) // 垂直翻转

            FQaImage->DoQaFlip();

        if (28 == tag) { // 旋转且镜像

            FQaImage->DoQaFlip();

            FQaImage->DoQaRotateLeft();

            SwapWidthAndHeight();

        }

        if (29 == tag || // 普通阈值

            30 == tag) { // 系统预留值

            static UnicodeString threshold = "128";

            if (InputQuery("输入阈值", "请输入二值化的阈值(0-255)", threshold)) {

                try {

                    int value = threshold.ToInt();

                    if (29 == tag)

                        FQaImage->DoQaThreshold(value);

                    else {

                        RGBQUAD c = {

                            255, 255, 255, 0

                        };

                        FQaImage->DoQaThreshold2(value, true, c, true);

                    }

                }

                catch(...) {

                    threshold = "128";

                }

            }

        }

        if (31 == tag) { // 智能阈值

            FQaImage->DoQaAdaptiveThreshold();

            FQaImage->DoQaGrayScale();

        }

  1. 剪裁、复制、刷新显示

参照视频方式实现。

  1. 高级编辑

主要有以下一些高级编辑功能

用户一般用不到这些,提供这些功能,聊胜于无。

  1. 优化

快速查看优化效果并可快速应用

反相效果:

  1. 选择及后续操作

今天主要精力在于可以选择图像的部分区域,然后删除或保留这一部分

暂时支持三种选择方式

 

以后再加入其它方式,包括魔术棒方式

点击后,可在工作区以图形化方式进行区域选择操作,如

矩形框选:

椭圆框选:

多边形框选:

上述选择操作可以反向选择,即选该区域外的部分,以下为上述对应的三个反向选择:

 

选择操作之后,可以进行删除操作,即当前被选择部分将被清空为纯白色:

有了选择及删除操作,将方便对图片的识别前预处理,即将效果不太好的地方选中删除,以提高后续识别准确率。

  1. Undo/Redo

支持无限级的Undo/Redo操作。

 

图片编辑功能基本完成,明天开始完善OCR识别功能。

posted on 2013-05-06 23:13  drgraph  阅读(840)  评论(0编辑  收藏  举报