程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 關於色片檢測的問題 其高手來回答-CSDN問答

關於色片檢測的問題 其高手來回答-CSDN問答

編輯:編程解疑
關於色片檢測的問題 其高手來回答

double operation::colorCastDetection(IplImage pFrame)
{
IplImage
labFrame = cvCreateImage(cvGetSize(pFrame),pFrame->depth,pFrame->nChannels);
cvCvtColor(pFrame,labFrame,CV_BGR2Lab);//lab:l為亮度,a為紅->綠,b黃—>藍

double da = 0;//色度a的平均值
double db = 0;//色度b的平均值
double D = 0;//圖像平均色度
double Ma = 0;//色度a的方差
double Mb = 0;//色度b的方差
double M = 0;//色度的中心矩
double K = 0;//圖像偏色因子
int height = labFrame->height;//圖像高度
int width = labFrame->width;//圖像寬度

uchar* labData = (uchar*)labFrame->imageData;
for(int i = 0;i < labFrame->height;i++)
{
    for(int j = 0;j < labFrame->width;j++)
    {
        da += labData[i * labFrame->widthStep + j * labFrame->nChannels + 1];
        db += labData[i * labFrame->widthStep + j * labFrame->nChannels + 2];

// cout<<"da "<widthStep + j * labFrame->nChannels + 1]< // coutwidthStep + j * labFrame->nChannels + 2]<<endl;
}
}
da = da/height/width;
db = db/height/width;
D = sqrt(pow(da,2) + pow(db,2));

    代碼中的算法方程為什麼要+1+2 

為什麼是用加的

最佳回答:


你的注釋寫了
da為紅->綠,db黃—>藍
red 紅 0
green 綠 1
blue 藍 2

zhai260525088
caozhy
zhai260525088
zhai260525088
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved