资源简介
灰度共生矩阵的实现,环境为vs2010+opencv2,参考书本为数字图像处理与机器视觉P386。仅供参考。倾听宝贵意见。
代码片段和文件信息
#include “stdafx.h“
#include
#include
using namespace cv;
using namespace std;
void LQGetGLCM_Horizon(Mat& input Mat& dst)
{
Mat src = input;
CV_Assert(1 == src.channels());
src.convertTo(src CV_32S);
int height = src.rows;
int width = src.cols;
/// 统计灰度级总数
int maxpixel = 0;
for(int j = 0; j < height; j++)
{
int* srcdata = src.ptr(j);
for (int i = 0; i < width; i++)
{
if(srcdata[i] > maxpixel)
{
maxpixel = srcdata[i];
}
}
}
maxpixel++;
dst.create(maxpixel maxpixel CV_32SC1);
dst = Scalar::all(0);
int temp;
for(int j = 0; j < height; j++)
{
int* srcdata = src.ptr(j);
for (int i = 0; i < width-1; i++)
{
temp = srcdata[i] - srcdata[i+1];
if(temp > 0)
dst.ptr(srcdata[i+1])[srcdata[i]]++;
else
dst.ptr(srcdata[i])[srcdata[i+1]]++;
}
}
for (int j = 0; j < maxpixel; j++)
{
for (int i = j+1; i < maxpixel; i++)
{
temp = dst.ptr(j)[i] + dst.ptr(i)[j];
dst.ptr(j)[i] = temp;
dst.ptr(i)[j] = temp;
}
}
}
void LQGetGLCM_Vertical(Mat& input Mat& dst)
{
Mat src = input;
CV_Assert(1 == src.channels());
src.convertTo(src CV_32S);
int height = src.rows;
int width = src.cols;
/// 统计灰度级总数
int maxpixel = 0;
for(int j = 0; j < height; j++)
{
int* srcdata = src.ptr(j);
for (int i = 0; i < width; i++)
{
if(srcdata[i] > maxpixel)
{
maxpixel = srcdata[i];
}
}
}
maxpixel++;
dst.create(maxpixel maxpixel CV_32SC1);
dst = Scalar::all(0);
int temp;
for(int j = 0; j < height-1; j++)
{
int* srcdata = src.ptr(j);
for (int i = 0; i < width; i++)
{
temp = srcdata[i] - src.ptr(j+1)[i]/*srcdata[i+1]*/;
if(temp > 0)
dst.ptr(src.ptr(j+1)[i])[srcdata[i]]++;
else
dst.ptr(srcdata[i])[src.ptr(j+1)[i]]++;
}
}
for (int j = 0; j < maxpixel; j++)
{
for (int i = j+1; i < maxpixel; i++)
{
temp = dst.ptr(j)[i] + dst.ptr(i)[j];
dst.ptr(j)[i] = temp;
- 上一篇:分割阈值opencv2
- 下一篇:OpenMP实现矩阵乘法
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 基于opencv的模板匹配代码
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- H264转化MP4源码
- OpenCV Computer Vision Application Programming
- 车牌识别系统,VS2010实现,语言C++
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- EAN13条码生成(C语言+VS2010)[包含EA
- 张平OpenCV算法精讲基于python和C++教材
- C语言c++游戏源代码大全
- 虹膜识别开源代码OSIRIS4.1基于opencv
- VS2010 C++ 操作Excel表格的编程实现
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- vs2010编写的图书馆管理系统MFC_Librar
- OpenCV打开摄像机显示在MFC窗口工程源
- 使用c++读取图像到二维矩阵
- 三维点云的圆柱面拟合
- MFC+OPENCV摄像机标定程序
评论
共有 条评论