图像处理5:Sobel边缘检测算子(C++)[通俗易懂]

图像处理5:Sobel边缘检测算子(C++)[通俗易懂]voidCMFCworkDlg::OnBnClickedButton7(){ //TODO:在此添加控件通知处理程序代码 //Sobel算子边缘检测 Matimage=imread(“ema.jpg”,1); Matimage_gray=gray_img(image); Matgradx,grady; gradx.create(image.size(),CV_8UC1); grady.create(image.size(),CV_8UC1); for..

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述
在这里插入图片描述

void CMFCworkDlg::OnBnClickedButton7()
{ 

// TODO: 在此添加控件通知处理程序代码
// Sobel算子边缘检测
Mat image = imread("ema.jpg", 1);
Mat image_gray = gray_img(image);
Mat gradx,grady;
gradx.create(image.size(), CV_8UC1);
grady.create(image.size(), CV_8UC1);
for (int i = 1; i < image.rows-1; i++)
{ 

for (int j = 1; j < image.cols-1; j++)
{ 

gradx.at<uchar>(i, j) = saturate_cast<uchar>(fabs(image_gray.at<uchar>(i + 1, j - 1) + 2 * image_gray.at<uchar>(i + 1, j) + image_gray.at<uchar>(i + 1, j +1) -image_gray.at<uchar>(i - 1, j - 1) - 2 * image_gray.at<uchar>(i - 1, j) - image_gray.at<uchar>(i - 1, j + 1)));
grady.at<uchar>(i, j) = saturate_cast<uchar>(fabs(image_gray.at<uchar>(i - 1, j + 1) + 2* image_gray.at<uchar>(i , j + 1)+ image_gray.at<uchar>(i+1,j+1)-image_gray.at<uchar>(i-1,j-1)-2*image_gray.at<uchar>(i,j-1)-image_gray.at<uchar>(i+1,j-1)));
}
}
imshow("灰度图", image_gray);
imshow("gradx", gradx);
imshow("grady", grady);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159853.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • VBA listview控件「建议收藏」

    VBA listview控件「建议收藏」
    1、在Listview控件中,用ColumnHeaders对象来操作列,而添加新的列可以用ColumnHeaders对象的ADD方法。具体如下: 
    ListView1.ColumnHeaders.Add序号,唯一的字符串标识,列标显示文字,列宽,列的内容对齐方式,所使用的图标序号。
    对齐方式有:lvwColumnLeft 、 lvwColumnCenter、lvwColumnRight                                            

  • Java volatile关键字作用「建议收藏」

    Java volatile关键字作用「建议收藏」当一个共享变量被volatile修饰时,它会保证修改的值立即被更新到主存“,这里的”保证“是如何做到的?和JIT的具体编译后的CPU指令相关吧?  volatile特性  内存可见性:通俗来说就是,线程A对一个volatile变量的修改,对于其它线程来说是可见的,即线程每次获取volatile变量的值都是最新的。  volatile的使用场景  通过关键字sychronize…

  • 找回 Ubuntu 11.10 的传统界面 (Gnome Classic)

    找回 Ubuntu 11.10 的传统界面 (Gnome Classic)

  • 投影,投影矩阵,正交投影矩阵的区别_矩阵论正交投影

    投影,投影矩阵,正交投影矩阵的区别_矩阵论正交投影1、投影2、幂等矩阵3、正交投影

  • densenet实现_sjf算法

    densenet实现_sjf算法论文:DenselyConnectedConvolutionalNetworks论文链接:https://arxiv.org/pdf/1608.06993.pdf代码的github链接:https://github.com/liuzhuang13/DenseNet文章详解:这篇文章是CVPR2017的oral,非常厉害。文章提出的DenseNet(DenseConvolution

  • discuz 二次开发后台调用编辑器的方法![通俗易懂]

    discuz 二次开发后台调用编辑器的方法![通俗易懂]纠结了两个晚上,一个白天,无数次的Google,无数次的baidu,依旧没搜到合理的方案,奇怪难道没人有这个需求吗??好在功夫不负有心人,终于解决了!但是有个缺憾是无法使用图片上传功能。。但是也算不错了!有谁能解决得了这个图片上传的功能,还请分享~~~下面分享一下解决方法!showtablerow(”,array(‘class=”td27″‘,’class=”td28″‘),

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号