php opencv 数字水印,OpenCV之简单数字水印
本文代码实现了简单的数字水印功能,即将一个掩模图像(二值图像)的信息隐藏在一个灰度图像的最低有效位上。
//====================================================================
// 作者 : quarryman
// 邮箱 : quarrying{at}qq.com
// 主页 : http://blog.csdn.net/quarryman
// 日期 : 2013年12月23日
// 描述 : 简单数字水印
//====================================================================
#include
#include
void kcvWatermarking(IplImage* img,IplImage* mask)
{
int w=img->width;
int h=img->height;
// 确保mask中只有黑白两种灰度值
cvThreshold(mask,mask,128,255,CV_THRESH_BINARY);
for(int i=0;i
{
for(int j=0;j
{
if(CV_IMAGE_ELEM(mask,uchar,i,j))
{
CV_IMAGE_ELEM(img,uchar,i,j)|=0x1;
}
else
{
CV_IMAGE_ELEM(img,uchar,i,j)&=0xfe;
}
}
}
}
void kcvGetWatermarking(IplImage* img,IplImage* dst)
{
int w=img->width;
int h=img->height;
for(int i=0;i
{
for(int j=0;j
{
if(CV_IMAGE_ELEM(img,uchar,i,j)&0x1)
{
CV_IMAGE_ELEM(dst,uchar,i,j)=0;
}
else
{
CV_IMAGE_ELEM(dst,uchar,i,j)=255;
}
}
}
}
int main( int argc, char** argv )
{
IplImage* img=cvLoadImage("lena.jpg",0);
IplImage* mask=cvCreateImage(cvGetSize(img),8,1);
IplImage* dst=cvCreateImage(cvGetSize(img),8,1);
cvSetZero(mask);
CvFont font=cvFont(2);
char text[]="minmin, i love you!";
cvPutText(mask,text,cvPoint(50,50),&font,CV_RGB(255,255,255));
cvNamedWindow("img");
cvNamedWindow("min");
cvShowImage("img",img);
cvShowImage("min",mask);
// 执行水印
kcvWatermarking(img,mask);
cvNamedWindow("comp");
cvShowImage("comp",img);
// 获得水印
kcvGetWatermarking(img,dst);
cvNamedWindow("watermarking");
cvShowImage("watermarking",dst);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&img);
cvReleaseImage(&mask);
cvReleaseImage(&dst);
return 0;
}
php opencv 数字水印,OpenCV之简单数字水印相关推荐
- Opencv 图像拼接与融合简单方法Stitcher
Opencv 图像拼接与融合简单方法Stitcher 官方示例 使用方法 运行效果 官方示例 #include "opencv2/imgcodecs.hpp" #include & ...
- Qt + Opencv 实现的一个简单文字识别的demo
Qt + Opencv 实现的一个简单文字识别的demo 很久没用Qt了,这两天结合Opencv整了一个简单文字识别的demo,太久没用了,很多东西都忘记了,中间碰到了几个不大不小的坑,最后都解决了, ...
- python配置opencv最简单_Python版本OpenCV安装配置及简单实例
原博文 2018-06-03 14:52 − # 2018-06-03 # 1. Python下载:https://www.python.org/downloads/ 选择对应平台对应版本的的Pyth ...
- vs2017python配置opencv_[opencv +VS2017] opencv、vs2017安装配置,环境搭建
文章目录 [opencv] 3.4.1下载安装 一.前言 二.说明 三.下载opencv 3.1 获取链接 3.2 下载结果 四.安装opencv 五.配置opencv环境 六.vs2017 6.1下 ...
- 【OpenCV学习】 《OpenCV3编程入门》--毛星云 01 邂逅OpenCV(OpenCV基本概念与基本架构) ROS系统上的运用(python实现)
对 <OpenCV3编程入门>第一章的学习笔记:理解什么是计算机视觉,什么是OpenCV,以及其中的联系等等. PS:此书为2014年出版,opencv的版本和接口也与现在有些不一致了,作 ...
- [opencv +VS2017] opencv、vs2017安装配置,环境搭建
文章目录 [opencv] 3.4.1下载安装 一.前言 二.说明 三.下载opencv 3.1 获取链接 3.2 下载结果 四.安装opencv 五.配置opencv环境 六.vs2017 6.1下 ...
- 如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文主要介绍如何在ARM开发板上从源码编译安装OpenCV和OpenCV contrib. OpenC ...
- CV之OpenCV:OpenCV库涉及概念、常见函数、常用案例、HALCON软件简介之详细攻略
CV之OpenCV:OpenCV库涉及概念.常见函数.常用案例.HALCON软件简介之详细攻略 目录 CV入门 OpenCV使用过程 1.基本教程 OpenCV的相关概念 1.基本概念
- 【OpenCV】OpenCV介绍及C++环境配置
文章目录 OpenCV介绍 Windows OpenCV环境配置 OpenCV介绍 OpenCV是一个跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和Mac O ...
最新文章
- 阎崇年:《袁崇焕传》自序
- windows server2012
- Hybrid框架UI重构之路:三、工欲善其事,必先利其器
- powershell命令大全
- android 线程锁Lock
- 基于openssl的https服务的配置
- atitit...触发器机制 ltrigger mechanism sumup .的总结O8f
- 网吧 电影系统 php,网吧电影服务器解决方案完全指南(一)
- 银行笔试题 java笔试题
- 计算机图形学实验体会,计算机图形学实验报告.doc
- 微信小程序 - 扫描小程序码进入小程序并获取参数
- 华为第十届 关灯计划
- ora-04098:触发器 无效且未通过重新验证问题解决之权限
- 微命令、微操作、微指令、微程序
- 1.6-程序员必须要会“英语”吗?(会英语在编程中的优势)
- RSI指标使用技巧和参数设置
- android 自定义文件夹图标,Launcher3 Android10.0修改文件夹图标为九宫格
- 考虑阶梯式碳交易机制与电制氢的综合能源系统热点优化
- Py之scikit-sos:scikit-sos的简介、安装、使用方法之详细攻略
- [附源码]计算机毕业设计JAVA保险业务管理系统