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

企业网站asp源码做点心的网站

企业网站asp源码,做点心的网站,wordpress后台模版,网页生成二维码源码OpenCV filter2D函数简介 OpenCV filter2D将图像与内核进行卷积#xff0c;将任意线性滤波器应用于图像。支持就地操作。当孔径部分位于图像之外时#xff0c;该函数根据指定的边界模式插值异常像素值。 该函数实际上计算相关性#xff0c;而不是卷积#xff1a; filter…     OpenCV filter2D函数简介    OpenCV filter2D将图像与内核进行卷积将任意线性滤波器应用于图像。支持就地操作。当孔径部分位于图像之外时该函数根据指定的边界模式插值异常像素值。 该函数实际上计算相关性而不是卷积 filter2D函数的原型如下 void cv::filter2DInputArray src OutputArray dst int  ddepth InputArray  kernel Point  anchor  Point-1-1), double  delta 0 int       borderType BORDER_DEFAULT ) 参数 src 输入图像 dst  输出图像与 src 大小相同、通道数相同 ddepth  目标图像的所需深度 kernel 卷积核或者更确切地说是相关核单通道浮点矩阵如果要将不同的内核应用于                        不同的通道请使用 split 将图像分割为单独的颜色平面并单独处理它们。 anchor 内核的锚点指示内核中过滤点的相对位置锚应该位于内核内默认值-1-1                      表示锚点位于内核中心。 delta  在将过滤像素存储到 dst 之前添加到过滤像素的可选值。 borderType 像素外推方法。可以选以下几种BORDER_CONSTANTBORDER_REPLICATEBORDER_REFLECTBORDER_REFLECT_101BORDER_TRANSPARENTBORDER_REFLECT101BORDER_DEFAULTBORDER_ISOLATED。 OpenCV filter2D函数应用 使用OpenCV filter2D函数通过改变卷积核kernel可达成不同的滤波效果。下面就OpenCV filter2D函数的几种常用场景做说明并以实例做演示。 图像锐化 图像锐化使用的卷积核如下 Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0); 下面以实例演示图像锐化操作及锐化效果示例代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main(int argc, char** argv) {Mat src imread(1.jpg);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0);Mat dst;filter2D(src, dst, src.depth(), kernel);imshow(Output Image, dst);waitKey(0);return 0; } 试运行结果如下 可以看到经过Filter2D滤波后的图像变得更清晰。 均值滤波 OpenCV filter2D函数实现均值滤波的卷积核如下 Mat kernel (Mat_float(3, 3) 1, 1, 1, 1, 1, 1, 1, 1, 1) / 9; 下面以实例演示filter2D实现图像均值滤波操作及滤波效果示例代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main(int argc, char** argv) {//sharp test/*Mat src imread(1.jpg);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0);Mat dst;filter2D(src, dst, src.depth(), kernel);imshow(Output Image, dst);*///Mean filter testMat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_float(3, 3) 1, 1, 1, 1, 1, 1, 1, 1, 1) / 9;Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 15; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);waitKey(0);return 0; } 试运行结果如下 可以看出均值滤波可以去除图像椒盐噪声达到磨皮效果。 高斯滤波 OpenCV filter2D函数实现高斯滤波的卷积核可由高斯核转换得到方法如下 Mat kernelGaussian getGaussianKernel(9, 1.5); Mat  kernel kernelGaussian * kernelGaussian.t() 下面以实例演示filter2D实现图像高斯滤波操作及滤波效果示例代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main(int argc, char** argv) {//filter2d sharp test/*Mat src imread(1.jpg);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0);Mat dst;filter2D(src, dst, src.depth(), kernel);imshow(Output Image, dst);*///filter2d Mean filter test/*Mat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_float(3, 3) 1, 1, 1, 1, 1, 1, 1, 1, 1) / 9;Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 15; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);*///filter2d Gaussian filter testMat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernelGaussian getGaussianKernel(9, 1.5);Mat kernel kernelGaussian * kernelGaussian.t();Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 6; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);waitKey(0);return 0; } 试运行结果如下 可以看出同样filter2D均高斯滤波同样可以去除图像椒盐噪声达成磨皮效果且所需次数更少。 边缘检测 filter2D还可以使用sobel内核实现边缘检测soble内核如下 Mat sobelX (Mat_float(3, 3) -1, 0, 1,-2, 0, 2,-1, 0, 1); Mat sobelY (Mat_float(3, 3) -1, -2, -1,0, 0, 0,1, 2, 1); 下面以实例演示filter2D 用sobel核实现图像边缘检测操作及滤波效果示例代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main(int argc, char** argv) {//filter2d sharp test/*Mat src imread(1.jpg);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0);Mat dst;filter2D(src, dst, src.depth(), kernel);imshow(Output Image, dst);*///filter2d Mean filter test/*Mat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_float(3, 3) 1, 1, 1, 1, 1, 1, 1, 1, 1) / 9;Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 15; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);*///filter2d Gaussian filter test/*Mat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernelGaussian getGaussianKernel(9, 1.5);Mat kernel kernelGaussian * kernelGaussian.t();Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 6; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);*///filter2d detect edges testMat src imread(4.png);if (src.empty()){cout Cannt open Image endl;return -1;}threshold(src, src, 127, 255, THRESH_BINARY);imshow(Input Image, src);Mat sobelX (Mat_float(3, 3) -1, 0, 1,-2, 0, 2,-1, 0, 1);Mat sobelY (Mat_float(3, 3) -1, -2, -1,0, 0, 0,1, 2, 1);Mat edges,edgesX, edgesY;filter2D(src, edgesX, CV_16S, sobelX);filter2D(src, edgesY, CV_16S, sobelX);convertScaleAbs(edgesX, edgesX);convertScaleAbs(edgesY, edgesY);addWeighted(edgesX, 0.5, edgesY, 0.5, 0, edges);imshow(Edges, edges);waitKey(0);return 0; } 试运行结果如下 可以看出确实检测到了边缘效果并不是很好。 filter2D还可以使用Prewitt核实现边缘检测。Prewitt核如下 Mat prewitt_x (Mat_int(3, 3) -1, 0, 1, -1, 0, 1, -1, 0, 1);         Mat prewitt_y (Mat_int(3, 3) -1, -1, -1,0, 0, 0, 1, 1, 1); 下面以实例演示filter2D 用Prewitt核实现图像边缘检测操作及滤波效果示例代码如下 #include iostream #include opencv2/opencv.hppusing namespace cv; using namespace std;int main(int argc, char** argv) {//filter2d sharp test/*Mat src imread(1.jpg);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_char(3, 3) 0, -1, 0, -1, 5, -1, 0, -1, 0);Mat dst;filter2D(src, dst, src.depth(), kernel);imshow(Output Image, dst);*///filter2d Mean filter test/*Mat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernel (Mat_float(3, 3) 1, 1, 1, 1, 1, 1, 1, 1, 1) / 9;Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 15; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);*///filter2d Gaussian filter test/*Mat src imread(3.png);if (src.empty()){cout Cannt open Image endl;return -1;}imshow(Input Image, src);Mat kernelGaussian getGaussianKernel(9, 1.5);Mat kernel kernelGaussian * kernelGaussian.t();Mat dst;filter2D(src, dst, src.depth(), kernel);for (size_t i 0; i 6; i){filter2D(dst, dst, src.depth(), kernel);}imshow(Output Image, dst);*///filter2d detect edges test/*//sobel kernelMat src imread(4.png);if (src.empty()){cout Cannt open Image endl;return -1;}threshold(src, src, 127, 255, THRESH_BINARY);imshow(Input Image, src);Mat sobelX (Mat_float(3, 3) -1, 0, 1,-2, 0, 2,-1, 0, 1);Mat sobelY (Mat_float(3, 3) -1, -2, -1,0, 0, 0,1, 2, 1);Mat edges,edgesX, edgesY;filter2D(src, edgesX, CV_16S, sobelX);filter2D(src, edgesY, CV_16S, sobelX);convertScaleAbs(edgesX, edgesX);convertScaleAbs(edgesY, edgesY);addWeighted(edgesX, 0.5, edgesY, 0.5, 0, edges);imshow(Edges, edges);*///Prewitt kernelMat src imread(4.png);if (src.empty()){cout Cannt open Image endl;return -1;}threshold(src, src, 127, 255, THRESH_BINARY);imshow(Input Image, src);Mat prewitt_x (Mat_int(3, 3) -1, 0, 1, -1, 0, 1, -1, 0, 1);Mat prewitt_y (Mat_int(3, 3) -1, -1, -1,0, 0, 0, 1, 1, 1);Mat edges, edgesX, edgesY;filter2D(src, edgesX, src.depth(), prewitt_x);filter2D(src, edgesY, src.depth(), prewitt_y);addWeighted(edgesX, 0.5, edgesY, 0.5, 0, edges);imshow(Edges, edges);waitKey(0);return 0; } 试运行结果如下 从结果可以看出filter2D使用Prewitt核检测边缘的结果与使用sobel核边缘检测的结果是有差异的。 OpenCV  filter2D函数就介绍到这里。博文示例是基于OpenCV4.8opencv目录位于d盘根目录下及VS2022。示例源码已上传到CSDN其链接为https://mp.csdn.net/mp_blog/creation/editor/136590730
http://www.pierceye.com/news/71678/

相关文章:

  • 网站更新步骤lamp网站开发架构经验
  • 网站开发技术要学什么软件北京市违法建设投诉网站
  • 辛集建设局网站曲阜网站建设百度开户
  • 贵安新区城乡住房建设厅网站眉县住房和城乡建设局网站
  • 课题组网站怎么做亚马逊的免费网站
  • 公司网站建设方案详细方案注册一个公司需要什么
  • 北京建设电工证查询网站电商网站怎样优化
  • wordpress建站dedecms农产品网站开发背景
  • 做企业网站代码那种好广州骏域网站建设专家手机电脑版
  • 商务网站开发课程建言有没有专门做建筑造价的私单网站
  • 湘潭网站建设 问下磐石网络群晖wordpress安装教程
  • 高端网站定制策划wordpress入站密码
  • 双辽做网站做网站建设业务
  • 一台云服务器可以做多少个网站论述网站建设的主要步骤
  • 网站源码在线查看上海做网络口碑优化的公司
  • 本地网站后台管理建设手机网站大全免费下载
  • 百度网站上传中国商标注册网查询网官网
  • 网站订票策划方案西安做企业网站哪家做的好
  • 网站标题在哪里窝窝网
  • 网站管理公司 优帮云怎么建设外贸网站
  • 宝钢工程建设有限公司网站知乎网站建设
  • 龙文国土局漳滨村新农村建设网站建设网站公司挖掘挖掘工具
  • 贵阳建设工程信息网站给个网址谢谢了
  • 谁有学做网站论坛账号wordpress图片相册蒙版
  • 南宁品牌网站设计公司wordpress树形结构
  • 开发 网站 团队外资做网站的公司
  • 网站导读怎么做辽宁省精神文明建设工作三大创建活动网站
  • 赣州专业网站推广多少钱儋州网站建设制作
  • 微信免费做邀请函模版网站高端网站建设大概多少费用
  • 内蒙建设工程信息网站什么叫营销型网站建设