資源簡(jiǎn)介
灰度共生矩陣的實(shí)現(xiàn),環(huán)境為vs2010+opencv2,參考書(shū)本為數(shù)字圖像處理與機(jī)器視覺(jué)P386。僅供參考。傾聽(tīng)寶貴意見(jiàn)。
代碼片段和文件信息
#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;
///?統(tǒng)計(jì)灰度級(jí)總數(shù)
int?maxpixel?=?0;
for(int?j?=?0;?j? {
int*?srcdata?=?src.ptr(j);
for?(int?i?=?0;?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? {
int*?srcdata?=?src.ptr(j);
for?(int?i?=?0;?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? {
for?(int?i?=?j+1;?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;
///?統(tǒng)計(jì)灰度級(jí)總數(shù)
int?maxpixel?=?0;
for(int?j?=?0;?j? {
int*?srcdata?=?src.ptr(j);
for?(int?i?=?0;?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? {
int*?srcdata?=?src.ptr(j);
for?(int?i?=?0;?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? {
for?(int?i?=?j+1;?i? {
temp?=?dst.ptr(j)[i]?+?dst.ptr(i)[j];
dst.ptr(j)[i]?=?temp;
- 上一篇:分割閾值opencv2
- 下一篇:OpenMP實(shí)現(xiàn)矩陣乘法
評(píng)論
共有 條評(píng)論