91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

使用C++以及OpenCV實現的最小二乘法的平面擬合,以及應用平面擬合達到的圖像背景去除。

資源截圖

代碼片段和文件信息

/*==================================================================
=??代碼內容:最大熵閾值分割??????????????????????????????????????
=??修改日期:2009-3-6?????????????????????????????????????????????????????????????????????????????????????????????????????????
=??作者:crond123?
=??博客:http://blog.csdn.net/crond123/
=???E_Mail:crond123@163.com??????????????????????????????????????????????????????
====================================================================*/


#include?“stdafx.h“

#include?“cv.h“
#include?“cxcore.h“
#include?“highgui.h“
#include?“cxerror.h“

#pragma?comment(lib“highgui.lib“)
#pragma?comment(lib“cv.lib“)?
#pragma?comment(lib“cvaux.lib“)?
#pragma?comment(lib“cxcore.lib“)?

/*
* 假定?src?mask?為8位單通道?dst?為?[3*1]矩陣
* ????平面方程為?z?=?ax+by+c;
* 將實驗數據帶入方程?z?中得到?
*?????????|a|
* A|b|?=?b
* ???|c|
* A?=? (xiyi1)??i=1-n?n為待擬合點數
*??????b??=??(I(xiyi))??i=1-n?n為待擬合點數
*??????
*??????由最小二乘公式的?
*?????
*
*?????????|a|
* ???|b|?=?A+b?=?(A?AH)-1?AH?b
* ???|c|
*/
int??LeastSquaresFittingPlane(?const?CvArr*?src?const?CvArr*?mask?CvArr*?dst)
{

CvMat?input_hdr?mask_hdr?output_hdr;
CvMat*?input_img?*input_mask?*output_img;

input_img?=?cvGetMat(?src?&input_hdr?);
????input_mask?=?cvGetMat(?mask?&mask_hdr?);
????output_img?=?cvGetMat(?dst?&output_hdr?);
if(?!CV_ARE_SIZES_EQ(input_imginput_mask)?)
return?-1;

int?mask_count?=?0;
int?width?=?input_mask->width;
int?height?=?input_mask->height;
for(int?y=0;y for(int?x=0;x {
if(CV_MAT_ELEM(*input_maskucharyx)>0)
mask_count?++;
}

CvMat*?A?=?cvCreateMat(mask_count3CV_32FC1);
CvMat*?AH?=?cvCreateMat(3mask_countCV_32FC1);
CvMat*?A_mul_AH?=?cvCreateMat(33CV_32FC1);
CvMat*??AH_mul_b?=?cvCreateMat(31CV_32FC1);
CvMat*?b?=?cvCreateMat(mask_count1CV_32FC1);
// CvMat*?result?=??cvCreateMat(31CV_32SC1);

int?mask_index?=?0;
for(int?y=0;y for(int?x=0;x {
uchar?cur_val?=?CV_MAT_ELEM(*input_maskucharyx);
if(cur_val==0)
continue?;
CV_MAT_ELEM(*Afloatmask_index0)?=?(float)x;
CV_MAT_ELEM(*Afloatmask_index1)?=??(float)y;
CV_MAT_ELEM(*Afloatmask_index2)?=?(float)1;

CV_MAT_ELEM(*bfloatmask_index0)?=?(float)CV_MAT_ELEM(*input_imgucharyx);
mask_index?++;
}
cvTranspose(AAH);?//?AH?=?A的轉制?
cvMulTransposed(AA_mul_AH1);//A_mul_AH?=?A?AH
cvInvert(A_mul_AHA_mul_AH);//?A_mul_AH?=?(A_mul_AH)-1?
cvmMul(AHbAH_mul_b);//AH_mul_b?=?AH?b
cvmMul(A_mul_AHAH_mul_bdst);//dst?=?(abc)H?=?A_mul_AH?AH_mul_b

cvReleaseMat(&A);
cvReleaseMat(&AH);
cvReleaseMat(&A_mul_AH);
cvReleaseMat(&AH_mul_b);
cvReleaseMat(&b);
return?0;
}

void?backgroundCorrectLeastSquaresFittingPlane(IplImage?*?srcIplImage?*?dstIplImage?*?bgplane)
{

IplImage?*?mask?=?cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);

cvSet(maskcvScalar(255));
CvMat?*?result?=?cvCreateMat(31CV_32FC1

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4336??2009-03-06?10:11??LeastSquaresFittingPlane\LeastSquaresFittingPlane.cpp

?????文件???????4556??2009-03-06?08:17??LeastSquaresFittingPlane\LeastSquaresFittingPlane.vcproj

?????文件???????1428??2009-03-06?09:54??LeastSquaresFittingPlane\LeastSquaresFittingPlane.vcproj.WENYAOGUANG.Administrator.user

?????文件???????1408??2009-03-05?19:27??LeastSquaresFittingPlane\ReadMe.txt

?????文件?????210090??2009-03-06?09:54??LeastSquaresFittingPlane\result.jpg

?????文件????????311??2009-03-05?19:27??LeastSquaresFittingPlane\stdafx.cpp

?????文件????????376??2009-03-05?19:27??LeastSquaresFittingPlane\stdafx.h

?????文件????1125016??2009-03-02?21:07??LeastSquaresFittingPlane\test.jpg

?????目錄??????????0??2009-03-06?10:16??LeastSquaresFittingPlane

-----------?---------??----------?-----??----

??????????????1347521????????????????????9


評論

共有 條評論