对OpenCV mat进行水平和垂直方向的投影
来源:互联网 发布:java的三大框架 编辑:程序博客网 时间:2024/06/09 04:26
#include <opencv2/core/core.hpp>#include <iostream>using namespace cv;using namespace std;void HorizonProjection(const Mat& src, Mat& dst){// accept only char type matricesCV_Assert(src.depth() != sizeof(uchar));dst.create(src.rows, 1, CV_32F);int i, j;const uchar* p;float* p_dst;for(i = 0; i < src.rows; i++){p = src.ptr<uchar>(i);p_dst = dst.ptr<float>(i);p_dst[0] = 0;for(j = 0; j < src.cols; j++){p_dst[0] += p[j];}}}void VerticalProjection(const Mat& src, Mat& dst){// accept only char type matricesCV_Assert(src.depth() != sizeof(uchar));dst.create(1, src.cols, CV_32F);int i, j;const uchar* p;float* p_dst = dst.ptr<float>(0);for(j = 0; j < src.cols; j++){p_dst[j] = 0;for(i = 0; i < src.rows; i++){p = src.ptr<uchar>(i);p_dst[j] += p[j];}}}int main(){ Mat C = (Mat_<uchar>(3,3) << 0, 1, 0, 2, 5, 2, 0, 3, 0); Mat hp, vp; HorizonProjection(C, hp); VerticalProjection(C, vp); cout << "origin matrix: " << endl; cout << C << endl; cout << "horizon projection matrix: " << endl; cout << hp << endl; cout << "vertical projection matrix: " << endl; cout << vp << endl;}
注意,目前HorizonProjection和VerticalProjection只接受单通道uchar类型的输入矩阵。
结果:
1 0
- 对OpenCV mat进行水平和垂直方向的投影
- OpenCV mat类实现水平投影和垂直投影
- 使用OpenCv中Mat进行水平投影与垂直投影并实现字符切分
- 使用OpenCv中Mat进行水平投影与垂直投影并实现字符切分
- opencv计算图像的水平投影和垂直投影
- 利用OpenCV计算图像的垂直和水平积分投影
- 利用OpenCV计算图像的垂直和水平积分投影
- 利用OpenCV计算图像的垂直和水平积分投影
- 【OpenCV】计算图像的水平和垂直积分投影
- 水平投影和垂直投影的用处
- opencv学习---计算图像的水平积分投影和垂直积分投影
- opencv学习---计算图像的水平积分投影和垂直积分投影
- 利用图像在水平和垂直方向上的差分运算对图像进行边缘检测
- OpenCV Soble算子水平和垂直方向导数问题
- 图像水平方向的投影
- Matlab实现灰度图像的水平和垂直投影
- 关于车牌的垂直和水平投影代码 C++
- 自动滚动的RecyclerView(水平和垂直方向)
- vs2010中进行ffmpeg编译与单步调试
- Ubuntu OpenLDAP Server搭建
- 项目四。多文件工资
- 使用typedef语句定义数组类型
- 机器学习资源整理
- 对OpenCV mat进行水平和垂直方向的投影
- 【UML入门教程】——UML关系
- vs 2008中 1>Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行预生成事件..."
- 产生随机数:sand()和rand()函数用法
- 黑盒白盒测试剖析(面试专用)
- 敏捷开发之道(九)设计(续)
- STL中map实现技术
- C Socket与Java Socket之间的通信
- 单例设计模式