Here is an example code to generate transparent shape on image. Need to pay attention can not use cv::Mat mask(mat) to create the mask image, because mask will be just a shallow copy of mat.

int GenerateTransparentMask()
{
Mat mat = imread("test.jpg");
if (mat.empty())
return -; Size size = mat.size();
cv::Mat mask ( size, mat.type() );
mat.copyTo(mask); //cv::Mat mask(mat); //Can not work, becuase mask will be just a copy of mat, if draw on mask, means draw on mat too Rect rect(, , , );
rectangle(mask, rect, Scalar(, , ), CV_FILLED, CV_AA, ); double alpha = 0.3;
double beta = 1.0 - alpha;
cv::addWeighted(mask, alpha, mat, beta, 0.0, mat); cvNamedWindow("Result");
imshow("Result", mat); cvWaitKey(); //wait for a key press
return ;
}

The result will as below:

If you need to generate complicated mask on an image, need to use a little different method. Below is the example code.

int GenerateTransparentMask()
{
const Mat mat = imread("DetectingContours.jpg");
if (mat.empty())
return -; imshow("origianl", mat); Size size = mat.size();
cv::Mat copy ( size, mat.type() );
mat.copyTo ( copy ); //cv::Mat mask(mat); //Can not work, becuase mask will be just a copy of mat, draw on mask, means draw on mat too cv::Mat mask(size, CV_8U);  //mask must be CV_8U
mask.setTo(Scalar());
Rect rect(, , , );
rectangle(mask, rect, Scalar(, , ), CV_FILLED, CV_AA, );
rectangle(mask, Rect(, , , ), Scalar(, , ), CV_FILLED);
circle(mask, Point(, ), , Scalar(), CV_FILLED); copy.setTo(Scalar(, , ), mask);
//imshow("copy", copy); double alpha = 0.5;
double beta = 1.0 - alpha; cv::Mat result(size, mat.type());
cv::addWeighted(copy, alpha, mat, beta, 0.0, result); cvNamedWindow("Result");
imshow("Result", result); cvWaitKey(); //wait for a key press
return ;
}

Generate transparent shape on image的更多相关文章

  1. [LintCode] Shape Factory 形状工厂

    Factory is a design pattern in common usage. Implement a ShapeFactory that can generate correct shap ...

  2. [转]android使用shape stroke描边只保留底部

    在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没有分割线的,每个item中间都是 ...

  3. Android Shape Divider

    安卓框架提供了一种LinearLayout 内部布局元素分割线的实现,建立一个指定长宽的矩形Shape: <?xml version="1.0" encoding=" ...

  4. Shape Factory

    Factory is a design pattern in common usage. Implement a ShapeFactory that can generate correct shap ...

  5. C# PPT Operator

    来自:http://blog.csdn.net/lxzh12345/article/details/47047491 最近在写一个工具,设计到将界面内容到处到PPT中,且导出的内容能够编辑.网上搜了很 ...

  6. H5版俄罗斯方块(3)---游戏的AI算法

    前言: 算是"long long ago"的事了, 某著名互联网公司在我校举行了一次"lengend code"的比赛, 其中有一题就是"智能俄罗斯方 ...

  7. 3.0之后在LinearLayout里增加分割线

    android:divider="@drawable/shape"<!--分割线图片--> android:showDividers="middle|begi ...

  8. WebView线性进度条

    参考:http://www.cnblogs.com/hubli/p/4835549.html APP会跳转网页时候,请参考:http://blog.csdn.net/raphael55/article ...

  9. 改变seekbar的游标图片大小

    url: http://stackoverflow.com/questions/9699951/changing-size-of-seekbar-thumb The most flexible way ...

随机推荐

  1. 动态加载(异步加载)jquery/MUI类库 页面加载完成后加载js类库

    动态加载Mui类库: // ==UserScript== // @name // @version 1.4.0 // @author zzdhidden@gmail.com // @namespace ...

  2. C#实现任意大数的计算和简单逻辑命题的证明——前言

    介绍 这是本人毕业设计的项目,一直想将其整理成文,可一不小心4年就过去了(这个时间又可以读个大学了).现在给自己定一个目标,一个月时间里将项目的所有关键点都整理出来.不然真怕一眨眼又一个4年过去了,而 ...

  3. DB2 中文排序问题

    本地测试库中 代码集: GBK 数据库配置发行版级别 = 0x0c00 数据库发行版级别 = 0x0c00 数据库地域 = CN 数据库代码页 = 1386 数据库代码集 = GBK 数据库国家/地区 ...

  4. Visual Studio Team System 2008 Team Suite(90 天试用版)

    安装完成后,在“控制面板”中启动“添加删除程序”,选中Vs2008,点击“更改.删除”,输入序列号:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T

  5. ife-task0003学习收获总结

    + 编写可维护的css原则是,尽量减少改动时要编辑的地方(减少代码重复). + CSS布局奇淫技巧之-高度自适应 高度自适应:通过绝对定位来解决高度自适应的问题,元素不设置高度,设置绝对定位,将top ...

  6. Socket Server-基于线程池的TCP服务器

    了解线程池 在http://blog.csdn.net/ns_code/article/details/14105457(读书笔记一:TCP Socket)这篇博文中,服务器端采用的实现方式是:一个客 ...

  7. Java内存区域

    1.运行时数据区域 java虚拟机在执行java程序的过程中会将它管理的内存区域分为若干个不同的数据区域.这些区域有各自的服务对象,创建以及销毁时间,有的内存区域随着虚拟机的启动和关闭而创建和销毁,有 ...

  8. ajaxReturn

    controller:$info=array('error'=>0,'msg'=>'');if($user_info){    if($user_info['is_lock']){     ...

  9. GUI(图形用户界面)

    ylbtech-Miscellaneos:GUI(图形用户界面) A,返回顶部 1, 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显 ...

  10. AS快捷键

    Ctrl+Q 显示关键字的提示文档 Ctrl+鼠标点击 查看关键字的源码 ctrl+T 在不同的选项卡中进行切换 ctrl+J 提示当前位置输入模板 Ctrl+P 提示参数 Alt+Enter 提示 ...