当前位置: 首页 > wzjs >正文

做网站什么意思php网站后台密码破解程序

做网站什么意思,php网站后台密码破解程序,网络维护实践报告3000,汕头市专注网站建设OpenCV计算机视觉开发实践:基于Qt C - 商品搜索 - 京东 实现数字水印的相关函数 用OpenCV来实现数字水印功能,需要使用一些位操作函数,我们需要先了解一下这些函数。 1. bitwise_and函数 bitwise_and函数是OpenCV中的位运算函数之一&…

OpenCV计算机视觉开发实践:基于Qt C++ - 商品搜索 - 京东

实现数字水印的相关函数

用OpenCV来实现数字水印功能,需要使用一些位操作函数,我们需要先了解一下这些函数。

1. bitwise_and函数

bitwise_and函数是OpenCV中的位运算函数之一,用于对两幅二值图像进行按位与操作。具体来说,对于每个像素,将两幅输入图像相应位置的像素值分别进行按位与运算,输出的结果图像的对应像素值即为这两幅输入图像对应像素值的按位与结果。

bitwise_and函数的语法如下:

void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask = noArray());

其中,src1和src2表示要进行按位与操作的两幅输入图像;mask是可选参数,如果指定了掩膜,则只对掩膜对应位置的像素进行按位与操作;dst表示按位与运算的结果。

【例14.1】创建空白图像进行按位与操作

   打开Qt Creator,新建一个控制台项目,项目名称是test。

   在main.cpp中输入如下代码:

#include "opencv2/opencv.hpp"
using namespace cv;int main()
{// 空白图像创建Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);// 在图像内添加矩阵rectangle(m1, Rect(100, 100, 80, 80), Scalar(255, 255, 0), -1, LINE_8, 0);rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, LINE_8, 0);imshow("m1", m1);imshow("m2", m2);Mat dst;bitwise_and(m1, m2, dst); // 进行与操作,结果存于dst中imshow("result", dst);waitKey();return 0;
}

通过bitwise_and函数就能得到与操作的结果dst。

   运行程序,结果如图14-1所示。

图14-1

再看个示例,对现有图片进行按位与操作,代码如下:

【例14.2】对现成图像进行按位与操作

   打开Qt Creator,新建一个控制台项目,项目名称是test。

   在main.py中输入如下代码:

#include "opencv2/opencv.hpp"
using namespace cv;int main()
{Mat dog,cat,img_and;resize(imread("cat.png"),cat, Size(400, 360));resize(imread("dog.png"),dog, Size(400, 360));bitwise_and(cat,dog,img_and); // 与运算 1 & 1 = 1, 其它为0imshow("result",img_and);waitKey(0);return 0;
}

   保存程序并运行,结果如图14-2所示。

可以看出,与运算的结果是使图像变小,最后的图像也会偏暗。

2. bitwise_or函数

在OpenCV中进行或运算使用bitwise_or函数,其声明如下:

void bitwise_or(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray());

其中输入参数src1和src2可为灰度图或彩色图,src1和src2大小需相同;输出参数dst存放或运算的结果,尺寸和类型与src保持一致;掩膜mask可通俗理解为一个遮罩,只对mask设定的有效区域进行操作。

图14-2

或运算 0 | 0 = 0,其他情况为1。下面将猫和狗的图片进行或运算。

【例14.3】对现成图像进行按位或操作

   打开Qt Creator,新建一个控制台项目,项目名称是test。

   在main.cpp中输入如下代码:

#include "opencv2/opencv.hpp"
using namespace cv;int main()
{Mat dog,cat,img_and;resize(imread("cat.png"),cat, Size(400, 360));resize(imread("dog.png"),dog, Size(400, 360));bitwise_or(cat,dog,img_and); // 或运算 1 & 1 = 1,其他为0imshow("result",img_and);waitKey(0);return 0;
}

   保存程序并运行,结果如图14-3所示。

图14-3

可以看出,或运算的结果是使图像变大,最后的图像也偏亮。

代码实现数字水印

前面讲解了数字水印的嵌入过程和提取过程,步骤比较清晰。本节将根据这些步骤,通过代码来实现数字水印的嵌入和提取。

【例14.4】实现数字水印的嵌入和提取

   打开Qt Creator,新建一个控制台项目,项目名称是test。

   在main.cpp中输入如下代码:

#include "opencv2/opencv.hpp"
using namespace cv;int main()
{Mat gray1H7,dst,getWatermark;Mat src= imread("src.bmp",0);// 读取水印图像Mat watermark= imread("watermark.bmp",0);// 将水印图像内的正值处理为1,以方便嵌入,相当于把水印图像变成二值图像for(int i=0;i<watermark.rows;i++){for(int j=0;j<watermark.cols;j++){if(watermark.at<uchar>(i,j)>0)watermark.at<uchar>(i,j)=1;}}// 读取原始载体图像的行和列int r=src.rows;int c=src.cols;// ----------------------嵌入过程------------------------// 生成元素值都是254的数组Mat t254 = Mat::ones(r, c, CV_8UC1) * 254;// 获取gray1H7图像的高七位bitwise_and(src,t254,gray1H7);// 将watermark嵌入gray1H7内bitwise_or(gray1H7,watermark,dst);// ----------------------提取过程--------------------------// 生成元素值都是1的数组Mat t1=  Mat::ones(r, c, CV_8UC1);// 从目标载体图像内提取水印图像bitwise_and(dst,t1,getWatermark);// 将水印图像内的正值处理为255,以方便显示for(int i=0;i<getWatermark.rows;i++){for(int j=0;j<getWatermark.cols;j++){if(getWatermark.at<uchar>(i,j)>0)getWatermark.at<uchar>(i,j)=255;}}// ---------显示结果--------imshow("srcImg",src);imshow("watermark",watermark*255); // 当前watermark内最大值为1imshow("dstImg",dst);imshow("getWatermark",getWatermark);waitKey();destroyAllWindows();waitKey(0);return 0;
}

可以看出,上述代码是按照嵌入过程的步骤和提取过程的步骤来实现的。我们把一副水印图像(watermark.bmp)嵌入原始载体图像(src.bmp)中变为目标载体图像(也称含水印的载体图像)dst,然后从dst中提取出水印数据存于getWatermark中,最后显示4种图像。

   运行程序,结果如图14-4所示。

从图14-4中可以看到,原始载体图像(src)和含水印的载体图像(dst)肉眼是看不出区别的。下面再看水印图像,如图14-5所示。

图14-4

图14-5

在图14-5中,左边是原来的数字水印图像,右边是从目标载体图像中提取出来的数字水印图像,可以发现两者并没有变化。这样我们就实现了把一副数字水印图像嵌入载体图像再提取出的过程。


文章转载自:

http://pH3NffW8.rkdnm.cn
http://Culw46ws.rkdnm.cn
http://O23Hb5Nq.rkdnm.cn
http://2ENaDb4s.rkdnm.cn
http://ru8s6OcG.rkdnm.cn
http://4ln7Z3Aw.rkdnm.cn
http://puCbMIqo.rkdnm.cn
http://oKzqN97x.rkdnm.cn
http://gDnD9EOw.rkdnm.cn
http://QdlKmrOq.rkdnm.cn
http://Vyn290Tk.rkdnm.cn
http://Vaf7klby.rkdnm.cn
http://w57MN7WZ.rkdnm.cn
http://byp6YOyu.rkdnm.cn
http://oubsrkpY.rkdnm.cn
http://4HSihcmh.rkdnm.cn
http://xf4LiTb0.rkdnm.cn
http://6OHdRpLL.rkdnm.cn
http://RNv07rQk.rkdnm.cn
http://zUcpMUTI.rkdnm.cn
http://xIBMdhhO.rkdnm.cn
http://xuobyyg6.rkdnm.cn
http://WgcbS3XS.rkdnm.cn
http://IMz7TnE8.rkdnm.cn
http://nGdudJh3.rkdnm.cn
http://vIFcx5Yt.rkdnm.cn
http://oXDa9H49.rkdnm.cn
http://o0E2OHgs.rkdnm.cn
http://DL6tw9bo.rkdnm.cn
http://kDjwcZPh.rkdnm.cn
http://www.dtcms.com/wzjs/746532.html

相关文章:

  • 网站优化推广的方法wordpress 评论回复插件
  • 珠海网站建设找哪家好简易购物系统
  • 建设网站企业公司北京专业网站开发公司
  • wordpress 长页面商品标题优化
  • 可以做动画的网站有哪些郑州58同城
  • 网站建设线上线下双服务器成都短视频代运营
  • 在线做c语言题目的网站公众号开发者中心在哪
  • 谷城网站开发专业定制软件
  • 网站开发需要学哪些北京设计公司排行
  • 专做婚宴用酒是网站网站设置在设备之间共享怎么开启
  • 国内高清图片素材网站推荐娄底网站建设的话术
  • 合肥建设网站查询济南网站建设q479185700惠
  • 湖北省职业能力建设处网站邢台市是几线城市
  • 重庆做网站 熊掌号免费创建网站 优帮云
  • 苏州企业网站建设设计制作公司网站建设和风险评估
  • cms做网站容易不烟台网站排名优化公司
  • 做服装行业网站广东网站建设制作价格低
  • 网站建立后怎么做推广北京百度推广投诉电话
  • 商城网站制作教程张家港外贸网站建设
  • seo门户网站建设方案德州哪里有学做网站的
  • 西安制作网站软件展览公司
  • 鹿泉市建设局网站对网站建设起到计划和指导的作用
  • php网站开发实例教程源码网站seo完整seo优化方案
  • 网站设计 中国风商河便宜做网站的公司
  • 做装修的网站怎么做好赣州企业网站建设
  • 做存储各种环境信息的网站建设手机版网站需要主机多少空间
  • WordPress程序漏洞seo课程培训班费用
  • 成都市双流区建设局官方网站广州洲聚网站开发
  • 网站开发需要几个专业网站结构优化包括什么
  • 做外贸的人常用的网站开发工具都有什么