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语句中的关联及 ...
- hibernate:Named query not known: findXXXX or XXXX is not mapped
.hbm.xml文件所放的位置怎么看怎么都在spring配置的扫描路径中,就是会出现标题所示错误,查看log日志,的确也没发现XXXX被mapped的记录~ 参考解决方案: 在eclipse导出jar ...
- iis 7.5 0x80004005 静态文件 html、js、css 500错误
环境:iis 7.5 win7 64位 vs2012 问题:本地环境F5直接运行,没有任何问题,发布到IIS,静态文件不能访问,出现500错误,网上找了一堆解决办法,排除路径不正确,iis全部功能勾了 ...
- nginx下rewrite参数超过9个的解决方法
nginx 在处理多于9个参数的时候,是采用重命名的方法来实现的: /?m?([0-9,]*)h?(\d*)a?([0-9,]*)c?(\d*)s?(x?f?(?P<f>[0-9,]*)/ ...
- STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例
我用的是IAR,这个貌似是MDK的,不过很有用,大家可以看一下 ;* 文件名 : startup_stm32f10x_hd.s ;* 库版本 : V3.5.0 ;* 说明: 此文件为STM32F10x ...
- ruby中 Win32ole的各应用操作方法(word excel Outlook IE)
Win32ole为标准Ruby发行版的一部分.Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互.具体说来Win32ole可以操作Word,Excel,IE, ...
- 一条SQL查出当月的每一天
from master..spt_values ),,),'2013-02-03')+'-01' as datetime)) 结果: 返回带有年月日的日期 ),),) AS datetime) fro ...
- HBase最佳实践-列族设计优化
本文转自hbase.收藏学习下. 随着大数据的越来越普及,HBase也变得越来越流行.会用HBase现在已经变的并不困难,然而,怎么把它用的更好却并不简单.那怎么定义'用的好'呢?很简单,在保证系统稳 ...
- iOS5.0以上使用新浪微博开放平台OAuth 续(及解决登录无效问题)
新浪微博开放平台为第三方应用提供了简便的合作模式,满足了手机用户和平板电脑用户随时随地分享信息的需求.通过调用平台的api即可实现很多微博上的功能. 本篇主要目的是记录新浪微博移动SDK iOS版本的 ...
- Python爬虫 网页图片
一 概述 参考http://www.cnblogs.com/abelsu/p/4540711.html 弄了个Python捉取单一网页的图片,但是Python已经升到3+版本了.参考的已经失效,基本用 ...