资源简介
灰度共生矩阵的实现,环境为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实现矩阵乘法
相关资源
- 分割阈值opencv2
- surfsift算法配准,利用Ransac去除误匹配
- VS2010下利用C++实现对Excel的编程
- opencv实现小波变换
- opencv数字识别.cpp
- opencv 人脸追踪 自动打马赛克
- OpenCV贾志刚视频教程完整版
- opencv实现surf算法
- opencv简单的暗通道去雾算法
- openv人脸模板采集程序
- opencv+vs 实现画中画 c语言
- C Socket通信多线程数据双向收发VS201
- 维纳滤波opencv
- OpenCV手势识别-手掌特征提取源码
- VS2010调用Keil实现单片机c语言编程
- vc++&opencv图像分块
- OpenCv背景差分228299
- 在VC 6.0的opencv环境下视频显示与捕捉
- 聊天+传送文件+设置字体及颜色vs201
- openCV获取车流
- Opencv C++ 读取、保存图片
- 基于VS2010的MFC对话框之图片查看器
- 简单计算器vs2010+MFC编写
- teeChart快速画图mfcvs2010
- VS2010 C++ ADO读取ACCESS 数据库
- Q756748.zip 用VS2010MFC做一道可视化题目
- OpenCV视频的保存以及显示
- C++围棋游戏
- c++中的chamfer matching 实现
- opencv背景差分
评论
共有 条评论