Generate transparent shape on image
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的更多相关文章
- [LintCode] Shape Factory 形状工厂
Factory is a design pattern in common usage. Implement a ShapeFactory that can generate correct shap ...
- [转]android使用shape stroke描边只保留底部
在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没有分割线的,每个item中间都是 ...
- Android Shape Divider
安卓框架提供了一种LinearLayout 内部布局元素分割线的实现,建立一个指定长宽的矩形Shape: <?xml version="1.0" encoding=" ...
- Shape Factory
Factory is a design pattern in common usage. Implement a ShapeFactory that can generate correct shap ...
- C# PPT Operator
来自:http://blog.csdn.net/lxzh12345/article/details/47047491 最近在写一个工具,设计到将界面内容到处到PPT中,且导出的内容能够编辑.网上搜了很 ...
- H5版俄罗斯方块(3)---游戏的AI算法
前言: 算是"long long ago"的事了, 某著名互联网公司在我校举行了一次"lengend code"的比赛, 其中有一题就是"智能俄罗斯方 ...
- 3.0之后在LinearLayout里增加分割线
android:divider="@drawable/shape"<!--分割线图片--> android:showDividers="middle|begi ...
- WebView线性进度条
参考:http://www.cnblogs.com/hubli/p/4835549.html APP会跳转网页时候,请参考:http://blog.csdn.net/raphael55/article ...
- 改变seekbar的游标图片大小
url: http://stackoverflow.com/questions/9699951/changing-size-of-seekbar-thumb The most flexible way ...
随机推荐
- MySQL 使用笔记(一) 关联
2016-12-16 一.当前未掌握总结: 目前MySQL中不会的内容: 1.临时表(变量表) 2.存储过程 3.游标 4.函数 二.关联 内联.左关联.右关联.外联 (一).标准sql语句中的关联及 ...
- C#中的属性太邪恶了
好懒,啥都不想写了.C#的属性伤透了我的心.只能相信记忆力和想象力能让我下次翻到这篇日志时能瞬间想到我们在谈瓦特. http://stackoverflow.com/questions/1224270 ...
- nodemon配置文件简单整理
文件名称nodemon.json 内容如下: { "restartable":"rs",//重启的命令,默认是 rs "ignore":[& ...
- [转]Centos安装zeromq和jzmq
Required packages: autoconf automake libtool gcc gcc-g++ make libuuid-dev git java-1.6.0-openjdk-dev ...
- [2016.01.18]文本替换专家 v5.3
文本替换专家,界面简洁易用,功能强大实用.支持大小写匹配,支持多级目录.多行文本.多种文件格式的同时批量查找和批量替换.智能准确的区分ANSI.UTF-8(包括无BOM的UTF-8).Unicode. ...
- MySQL的基本操作
1. 查看数据库 语法 #show databases; 2. 添加数据库 语法: #create database demo; 3. 删除数据库 语法: #drop database demo; 4 ...
- PHP简介
PHP PHP是运行在服务器端的脚本,可以运行在UNIX.LINUX.WINDOWS.Mac OS下.PHP的特性包括:1. PHP 独特的语法混合了 C.Java.Perl 以及 PHP 自创新的语 ...
- 开源共享一个训练好的中文词向量(语料是维基百科的内容,大概1G多一点)
使用gensim的word2vec训练了一个词向量. 语料是1G多的维基百科,感觉词向量的质量还不错,共享出来,希望对大家有用. 下载地址是: http://pan.baidu.com/s/1boPm ...
- 关于页面里没有id属性的Javascript上的解决办法
如果页面上只有Textarea,可以用如下方法来遍历其name属性然后赋给id属性:<script> try{ window.onload = setTextAreaIds();setTe ...
- Bugtags奉命解救宝贵的双手,务必将此文章转给你身边的程序猿
移动应用 Bug 快速反馈神器 前段时间,有很多 APP 突然走红,最终却都是樱花一现.作为一个创业团队,突然爆红是非常难得的机会.但是很可惜,由于没有经过充分的测试,再加上用户的激增,APP 闪退. ...