OpenCV计算图像的水平和垂直积分投影
作者:长相忆兮长相忆 时间:2021-10-09 08:40:45
本文实例为大家分享了OpenCV计算图像的水平和垂直积分投影的具体代码,供大家参考,具体内容如下
#include <cv.h>
#include <highgui.h>
#pragma comment( lib, "cv.lib" )
#pragma comment( lib, "cxcore.lib" )
#pragma comment( lib, "highgui.lib" )
int main()
{
IplImage * src=cvLoadImage("lena.jpg",0);
//cvSmooth(src,src,CV_BLUR,3,3,0,0);
cvThreshold(src,src,50,255,CV_THRESH_BINARY_INV);
IplImage* paintx=cvCreateImage( cvGetSize(src),IPL_DEPTH_8U, 1 );
IplImage* painty=cvCreateImage( cvGetSize(src),IPL_DEPTH_8U, 1 );
cvZero(paintx);
cvZero(painty);
int* v=new int[src->width];
int* h=new int[src->height];
memset(v,0,src->width*4);
memset(h,0,src->height*4);
int x,y;
CvScalar s,t;
for(x=0;x<src->width;x++)
{
for(y=0;y<src->height;y++)
{
s=cvGet2D(src,y,x);
if(s.val[0]==0)
v[x]++;
}
}
for(x=0;x<src->width;x++)
{
for(y=0;y<v[x];y++)
{
t.val[0]=255;
cvSet2D(paintx,y,x,t);
}
}
for(y=0;y<src->height;y++)
{
for(x=0;x<src->width;x++)
{
s=cvGet2D(src,y,x);
if(s.val[0]==0)
h[y]++;
}
}
for(y=0;y<src->height;y++)
{
for(x=0;x<h[y];x++)
{
t.val[0]=255;
cvSet2D(painty,y,x,t);
}
}
cvNamedWindow("二值图像",1);
cvNamedWindow("垂直积分投影",1);
cvNamedWindow("水平积分投影",1);
cvShowImage("二值图像",src);
cvShowImage("垂直积分投影",paintx);
cvShowImage("水平积分投影",painty);
cvWaitKey(0);
cvDestroyAllWindows();
cvReleaseImage(&src);
cvReleaseImage(&paintx);
cvReleaseImage(&painty);
return 0;
}
结果:
来源:https://blog.csdn.net/hero_myself/article/details/49667613
标签:OpenCV,图像,投影
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java实现按行读取大文件
2022-11-05 13:56:57
浅谈Spring6中的反射机制
2022-06-04 13:23:33
![](https://img.aspxhome.com/file/2023/1/110631_0s.png)
JavaBean和Map转换封装类的方法
2023-04-18 06:50:52
SpringBoot整合mybatis的方法详解
2023-09-02 06:23:57
![](https://img.aspxhome.com/file/2023/5/58455_0s.png)
java简单工厂模式实例及讲解
2021-09-19 14:08:39
C#编程获取客户端计算机硬件及系统信息功能示例
2023-08-09 01:57:15
Java轻量级权限认证框架Sa-Token的使用
2023-03-13 16:34:59
![](https://img.aspxhome.com/file/2023/8/105948_0s.jpg)
详解Spring整合Ehcache管理缓存
2022-02-10 00:50:17
Maven 生成打包可执行jar包的方法步骤
2023-01-02 14:53:15
![](https://img.aspxhome.com/file/2023/2/66192_0s.jpg)
java 装饰模式(Decorator Pattern)详解及实例代码
2023-09-07 03:13:08
C#使用udp如何实现消息的接收和发送
2022-05-26 20:56:01
![](https://img.aspxhome.com/file/2023/3/116443_0s.png)
C#实现将窗体固定在显示器的左上角且不能移动的方法
2022-03-04 18:34:17
Android 下的 QuickJS Binding 库特性使用详解
2022-08-08 00:24:24
java实现给图片加铺满的网格式文字水印
2023-07-30 05:22:12
![](https://img.aspxhome.com/file/2023/9/57809_0s.jpg)
关于@RequestBody和@RequestParam注解的使用详解
2023-01-20 09:08:20
![](https://img.aspxhome.com/file/2023/4/62654_0s.jpg)
C#实现的算24点游戏算法实例分析
2021-12-01 04:13:21
rsa加密算法使用示例分享
2021-08-03 20:47:29
简单实现安卓里百度地图持续定位
2023-07-29 07:59:22
解析Java继承中方法的覆盖和重载
2021-09-02 02:02:32
C#执行SQL事务用法实例
2021-11-23 23:32:27
![](https://img.aspxhome.com/file/2023/4/122724_0s.png)