opencv16-Sobel算子

 

处理过程:

#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
int main()
{Mat src = imread("E:\\vs2015\\opencvstudy\\1.jpg", 1);if (src.empty()){cout << "could not load the src image!" << endl;return -1;}char *input_title = "input Image";imshow(input_title, src);Mat blur_image;GaussianBlur(src, blur_image, Size(3, 3), 0, 0);Mat gray_image;cvtColor(blur_image, gray_image,CV_BGR2GRAY);imshow("gray_image", gray_image);Mat xgrad_sobel, ygrad_sobel;Sobel(gray_image, xgrad_sobel, CV_16S, 1, 0, 3);  //x方向梯度Sobel(gray_image, ygrad_sobel, CV_16S, 0, 1, 3);  //y方向梯度convertScaleAbs(xgrad_sobel, xgrad_sobel);convertScaleAbs(ygrad_sobel, ygrad_sobel);imshow("xgrad_sobel", xgrad_sobel);imshow("ygrad_sobel", ygrad_sobel);Mat xygrad_sobel;addWeighted(xgrad_sobel, 0.5, ygrad_sobel, 0.5, 0, xygrad_sobel);imshow("xygrad_sobel", xygrad_sobel);Mat xygrad_sobel2 = Mat(xgrad_sobel.size(), xgrad_sobel.type());int width = xgrad_sobel.cols;int height = xgrad_sobel.rows;for (int row = 0; row < height; row++){for (int col = 0; col < width; col++){int xg = xgrad_sobel.at<uchar>(row, col);int yg = ygrad_sobel.at<uchar>(row, col);int xy = xg + yg;xygrad_sobel2.at<uchar>(row, col) = saturate_cast<uchar>(xy);}}imshow("xygrad_sobel2", xygrad_sobel2);//Scharr算子//Mat x2grad_sobel, y2grad_sobel;//Scharr(gray_image, x2grad_sobel, CV_16S, 1, 0);  //x方向梯度//Scharr(gray_image, y2grad_sobel, CV_16S, 0, 1);  //y方向梯度//convertScaleAbs(x2grad_sobel, x2grad_sobel);//convertScaleAbs(y2grad_sobel, y2grad_sobel);//imshow("x2grad_sobel", x2grad_sobel);//imshow("y2grad_sobel", y2grad_sobel);//Mat xy2grad_sobel;//addWeighted(x2grad_sobel, 0.5, y2grad_sobel, 0.5, 0, xy2grad_sobel);//imshow("xy2grad_sobel", xy2grad_sobel);waitKey(0);return 0;}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Fiddler抓包调试工具,实现神奇特殊场景深度测试(三)

前面两篇文章我们分别聊了如何设置请求断点和设置响应断点&#xff0c;以及篡改请求数据和响应数据来欺骗前后端&#xff0c;达到可模拟特殊场景测试效果&#xff0c;利用Fiddler的AutoResponder进行mock测试&#xff0c;无需构建大量的测试数据&#xff0c;大大提升了测试效率…

Pytest参数选项自由执行测试用例详解(二)

运行pytest可以指定目录和文件&#xff0c;如果不指定&#xff0c;pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。我们把pytest搜索测试文件和测试用例的过程称为测试搜索&#xff08;test discovery&#xff09;。只要遵循pytest的命名规则&#xff0…

ISTQB高级国际认证试题及答案(一)

题目 #1 &#xff08;3 分&#xff09;选择2个答案您是旅游信息手机应用项目的测试经理。近期该项目切换到敏捷流程和测试驱动开发&#xff08;TDD&#xff09;。每个开发周期持续15天&#xff0c;在第7天之后开始每日构建。第10天以后&#xff0c;不会再有新的功能加入。开发团…

ISTQB高级-测试经理国际认证试题及答案(二)

1、TM-1.2.1 (K4) 为了计划测试活动和工作产品以实现测试目标&#xff0c;必须对一个系统的测试需求进行分析。问题&#xff1a;您是旅游信息手机应用项目的测试经理。近期该项目切换到敏捷流程和测试驱动开发&#xff08;TDD&#xff09;。每个开发周期持续15天&#xff0c;在…

我的游测之路 | 揭秘游戏测试神秘面纱(一)

经常有人问我&#xff1a;游戏测试到底是干什么呢&#xff1f;是游戏代练&#xff1f;每天玩游戏&#xff1f;装备随便造&#xff0c;怪物随便秒&#xff0c;线上GM指令随便用&#xff1f;可以每天玩玩游戏&#xff0c;不用忙工作&#xff0c;太爽了&#xff1f;当然并非完全如…

opencv22-直方图均衡化

#include<opencv2\highgui\highgui.hpp> #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; char *output_title "output Image"; Mat src, dst; //霍夫圆检测前先进行中值滤波…

测试管理 | 4种优先级排序方法一定要掌握

卡诺模型&#xff08;KANO模型&#xff09;、大富翁&#xff08;Monopoly Money&#xff09;、莫斯科方法&#xff08;MoSCoW&#xff09;、100点方法&#xff0c;4种方法用于测试管理或项目管理过程中的优先级排序、工作量估算等&#xff0c;如&#xff1a;项目版本优先级、产…

overleaf 支持中文

基本操作 左上角menu中&#xff0c;切换compiler 到xelatex。 然后在\documentclass声明下面加一个 \usepackage{ctex}。 使用\usepackage{xecjk}可能也可以&#xff0c;但会有警告。 警告分析 Font “FandolSong-Regular” does not contain requested Script “CJK”。 网上…

怎样在半个月内迅速提升技能,搞定面试进 大厂?

最近一两个星期&#xff0c;来找我咨询大厂面试与名企跳槽问题的朋友突然多了起来。我才意识到只剩十来天就要进入九月互联网招聘旺季&#xff0c;看来大家都在为跳槽涨薪进大厂做准备了。在小厂做了一两年“测试工程师”&#xff0c;不过是拿到软件点点点&#xff0c;毫无技术…

opencv24-直方图比较

此方法比较准确 还行 此方法不怎么行 此方法比较准确 #include<opencv2\highgui\highgui.hpp> #include<opencv2\opencv.hpp> #include<iostream> #include<math.h> using namespace std; using namespace cv; string convertToString(double d); in…

抓包工具Stream之接口调试和加密解码(二)

移动端iphone抓包调试神器—Stream安装和使用&#xff08;一&#xff09;之前我们介绍了Stream工具的安装和使用&#xff0c;今天我们再来介绍下抓包请求筛选、接口详情、接口导出、接口调试、接口测试、编码解码加密等1、抓包完成&#xff0c;停止抓包&#xff0c;进入最新抓包…

白盒测试 | 用例设计方法之条件覆盖

条件覆盖&#xff0c;程序各判定中的每个条件获得各种可能的取值至少满足一次即可&#xff0c;不考虑路径的覆盖。上图中有两个判定表达式&#xff0c;每个判定表达式中有两个条件&#xff0c;为了做到条件覆盖&#xff0c;第一个判断的所有条件的可能取值情况是A>1或A≤1&a…

白盒测试 | 用例设计方法之判定覆盖

判定覆盖也被成为分支覆盖(Branch Coverage)是设计足够多的测试用例&#xff0c;使得程序中的每一个判断至少获得一次“真”和一次“假”&#xff0c;即使得程序流程图中的每一个真假分支至少被执行一次。使设计的测试用例保证程序中每个判断的每个取值分支&#xff08;ture or…

白盒测试 | 用例设计方法之语句覆盖

语句覆盖&#xff0c;顾名思义就是针对代码语句的嘛。它的含义是我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”&#xff0c;原因是它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支&#xff0c;因此在实际…

一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了

金九银十&#xff0c;大家都铆足干劲想抓住机会涨薪进大厂。结合这几年的行业趋势&#xff0c;想要挑战大厂面试&#xff0c;首先必须吃透Selenium自动化测试框架设计。这里说一下原因&#xff1a;首先&#xff0c;一线互联网大厂无一例外&#xff0c;全都要求测试人掌握Seleni…

4天搞定Docker和k8s核心架构,稳拿35k不是问题?

随着云原生时代的到来&#xff0c;各大厂纷纷上云&#xff0c;甚至有人说&#xff0c;未来的软件就是生在云上&#xff0c;长在云上的。在这种云原生时代大势下&#xff0c;衍生出来的 Kubernetes 工程师、云原生工程师的薪资也水涨船高&#xff0c;大厂不惜花重金聘请优秀的云…

1元解锁 | Python万能代码模板 |10大必学实用技巧

内容摘要你要悄悄学 Python&#xff0c;然后惊艳所有人。一听到 Python 或编程语言&#xff0c;你可能条件反射会觉得“很难”。但今天的 Python 课程是个例外&#xff0c;不需要你懂计算机原理&#xff0c;也不需要理解复杂的编程模式&#xff0c;只需替换成你想要的网页链接、…

C++ 递归函数返回值理解

首先看代码&#xff1a; #include <iostream> using namespace std; int main() {int digui(int i);int i;cin>>i;i digui(i);cout << "main函数最后结果&#xff1a;"<<i<<endl; } int digui(int i) {int j 0;if (i 0)return 1;j…