【练习6.14】积分图像cvIntegral及使用积分图的性质找横向和纵向边,IplImage结构中widthStep细节

提纲
题目要求
程序代码
结果图片
要言妙道

题目要求:

加载一副灰度图,得到它的积分图。利用积分图的性质找到图像里的横向和纵向边缘。

利用细长的矩形,在适当的位置减去或加上它们。

备注:边缘查找尚未加入代码

程序代码:

 1 // OpenCVExerciseTesting.cpp : 定义控制台应用程序的入口点。
 2 //
 3 //D:\\Work\\Work_Programming\\Source\\Image\\lena.jpg
 4
 5 #include "stdafx.h"
 6 #include <cv.h>
 7 #include <highgui.h>
 8 #include <iostream>
 9
10 #include <opencv2/legacy/legacy.hpp>
11 //#pragma comment(lib, "opencv_legacy2411.lib")
12
13 using namespace cv;
14 using namespace std;
15
16 //函数声明-->--->-->--->-->--->-->--->//
17
18
19 //<--<--<--<--<--<--<--<--<--函数声明//
20
21 int _tmain(int argc, _TCHAR* argv[])
22 {
23     const char* image_path = "D:\\Work\\Work_Programming\\Source\\Image\\OpenCVExerciseImage\\第6章\\纵横线2.jpg";
24     IplImage * image_resource =    cvLoadImage(image_path, CV_LOAD_IMAGE_GRAYSCALE);
25     assert(image_resource);
26
27     cvNamedWindow("原始图像", CV_WINDOW_AUTOSIZE);
28     cvShowImage("原始图像", image_resource);
29
30     CvSize size_image = cvSize(image_resource->width, image_resource->height);
31
32     IplImage * image_sum = cvCreateImage(cvSize(size_image.width+1,size_image.height+1), IPL_DEPTH_32F, image_resource->nChannels);
33
34     cvIntegral(image_resource, image_sum);
35
36     cvSave("image_sum.xml", image_sum);
37
38     //IplImage * image_8U_ToShow = cvCreateImage(size_image, IPL_DEPTH_8U, image_sum->nChannels);
39
40     //cvNamedWindow("积分图像", CV_WINDOW_AUTOSIZE);
41     //cvShowImage("积分图像", image_8U_ToShow);
42
43     cvWaitKey();
44
45     cvReleaseImage(&image_resource);
46     cvReleaseImage(&image_sum);
47     //cvReleaseImage(&image_8U_ToShow);
48
49     cvDestroyAllWindows();
50
51     return 0;
52 }

结果图片:

要言妙道:

①对于一幅灰度的图像,积分图像中的任意一点(x,y)的值是指从图像的左上角到这个点的所构成的矩形区域内所有的点的灰度值之和

②如果输入图像大小是W×H,则输出图像sum、sqsum、tilted_sum的大小鼻息为(W+1)×(H+1)

③根据输入图像的数据类型,注意将输出图像设置为32位整型或32或64位浮点型或

④参数widthStep与前面讨论过的CvMat中的step参数类似,包括相邻行的同列点之间的字节数。仅凭变量width是不能计算这个值得,因为为了处理过程更高效,每行都会有固定字节数来对其;因此第i行末和第i+1行开始处可能会有些冗余字节。widthstep是行字节数,应该是4的倍数

时间: 2024-10-06 11:17:31

【练习6.14】积分图像cvIntegral及使用积分图的性质找横向和纵向边,IplImage结构中widthStep细节的相关文章

积分图像 Integral

实现子区域的快速求和,在人脸识别及相关算法中应用的Haar小波中很有用 原理: 计算一个简单矩形区域((x1,y1),(x2,y2))中像素的和: 核心函数: cvIntegral 程序: 代码: #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> int integral(int argc,char** argv) { CvMat

积分图像的应用(一):局部标准差

局部标准差在图像处理邻域具有广泛的应用,但是直接计算非常耗时,本文利用积分图像对局部标准差的计算进行加速. 局部标准差: 标准差定义如下(采用统计学中的定义,分母为): 其中. 为了计算图像的局部标准差,首先设定局部区域的大小为 ,则局部区域的像素点个数 . 对标准差的公式进行化简: 因,故: 可以看出,局部标准差计算中需要对图像与进行局部求和操作,即和. 我们可以先分别计算出图像和的积分图像.,这样就能在常量时间计算出上述的局部和. 时间复杂度: 图像中共个像素点,每个局部区域共有个像素点,直

积分图像的应用(二):非局部均值去噪(NL-means)

非局部均值去噪(NL-means)一文介绍了NL-means基本算法,同时指出了该算法效率低的问题,本文将使用积分图像技术对该算法进行加速. 假设图像共像个素点,搜索窗口大小,领域窗口大小, 计算两个矩形邻域间相似度的时间为,对于每个像素点需要计算它与搜索窗口内个像素间的相似度,故NL-means复杂度为 . 经过分析可以发现,该算法可以提高之处只有邻域间相似度的计算,即耗时的操作.基本算法中,每次计算邻域间距离时都需要遍历两个邻域,逐对像素点求差值. 如果我们先构造一个关于像素差值的积分图像:

discuzx2.5 中积分操作函数以及自定义积分

转:http://www.enjoydiy.com/496.html 添加一条SQL,此 SQL 记录可以在您插件安装的时候内置在里面 PgSQL 1 2 INSERT INTO `pre_common_credit_rule` (`rulename`, `action`, `cycletype`, `cycletime`, `rewardnum`, `norepeat`, `extcredits1`, `extcredits2`, `extcredits3`, `extcredits4`, `

DIV CSS Sprites精灵 CSS图像拼合 CSS背景贴图定位教程案例

div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css sprites实例篇 css sprites拼合背景图片素材实现布局效果截图 一.什么是css sprites   -   TOP css sprites直译过来就是CSS精灵.通常被解释为“CSS图像拼合”或“CSS贴图定位”.其实就是通过将多个图片融合到一张图里面,然后通过CSS background背景定位技术技巧布局网页背景.这样做的好处也是显而易见的,因为图片多的话,会增加

互融云数字积分共享交易系统:传统积分新玩法!

随着经济水平的不断提升,人们的消费水平也在不断的增长.消费增长快,消费市场的竞争也相应会变得激烈.市场上各种促进消费的营销手段多样化,,其中以积分形式为主,各式各样的积分眼花缭乱,但是积分最终的消耗率却非常低,大多数用户虽手握积分却如同鸡肋. 目前大多数服务领域的翘楚企业都推出了积分体系,尤其是航空.银行.酒店.通讯运营商等,消费者对这些企业的积分认同度也比较高,但是消费者在使用和兑换积分的过程中满意度很低.其中的原因包括积分种类繁多,兑换过程繁琐. 研究人员表明中国人均拥有的积分超过了20种,

微信分享获得积分 jquery微信分享获得积分 原理

//发送给好友成功 res.err_msg=="send_app_msg:ok" //分享到朋友圈成功 res.err_msg=="share_timeline:ok" //分享到微博成功 res.err_msg=="share_weibo:ok" 2 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { // 发送给好友 WeixinJSBridg

discuzx3.2自定义积分操作日志,discuzx积分二次开发完全记录

详情参考:http://www.infosz.com/forum.php?mod=viewthread&tid=265 1 source\include\spacecp\spacecp_credit.php,分支中加入自己操作的标识(KEY),例如: 2 source\language\lang_spacecp.php 语言包中加入自己操作事件的名称,其中'credit_for_duihuan_gift'为积分日志, 'logs_credit_update_DLP' 积分日志查询类型 例如: 3

基于torch学汪峰写歌词、聊天机器人、图像着色/生成、看图说话、生成字幕

手把手教你基于torch玩转 学汪峰写词.自动聊天机器人.图像着色.图像生成.看图说话.生成字幕 作者:骁哲.李伟.小蔡.July.说明:本教程出自七月在线开发/市场团队.及七月在线5月深度学习班学员之手,有何问题欢迎加Q群交流:472899334.时间:二零一六年十月十二日. 前言 我们教梵高作画的教程发布之后,国庆7天,上百位朋友一一陆续动手尝试,大有全民DL.全民实验之感.特别是来自DL班的小蔡同学,国庆7天连做10个开源实验,并把这10个实验的简易教程(含自动聊天机器人)发布在社区上:h