0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

極限校正的實現(xiàn)原理方法有哪些

新機器視覺 ? 來源:新機器視覺 ? 2023-07-14 11:03 ? 次閱讀

導(dǎo)讀

極限校正的實現(xiàn)原理方法以及代碼詳解。

為什么要做極線校正?

三維重建是通過雙目立體匹配實現(xiàn)的如圖1,通過匹配空間中點在兩個圖像中的投影點,再根據(jù)三角關(guān)系得到P的Z值。

410c378c-21d8-11ee-962d-dac502259ad0.png41274658-21d8-11ee-962d-dac502259ad0.png

我們雙目相機拍攝的時候?qū)嶋H情況下如下圖a,兩個圖像做匹配時如我們圖中藍色箭頭指示的匹配點那樣,需要在全圖中進行查找。但是如果我們對相機進行校正,使得它們成像面平行且行對齊如下圖b,匹配點在同一行。那么我們只需在同行上查找,大大節(jié)約時間。因此,極線校正目的是對兩幅圖像的二維匹配搜索變成一維,節(jié)省計算量,排除虛假匹配點。

414327d8-21d8-11ee-962d-dac502259ad0.png

做極線校正我們需要知道哪些基礎(chǔ)的立體視覺相關(guān)的基礎(chǔ)知識?

1. 齊次坐標,剛體變換

齊次坐標

用n+1維矢量表示n維矢量,主要用途是可以方便矩陣運算。(參考下式)

剛體變換

4166bd10-21d8-11ee-962d-dac502259ad0.png

假設(shè)歐式空間中一點, 在兩個坐標系中的坐標分別為和, 那么圖中變換公式:

即:

用齊次坐標表示:

剛性物體無論位置和方向發(fā)生變換還是在不同坐標系下觀察同一個物體,它的形狀和大小都保持不變;

3個旋轉(zhuǎn)3個平移共6個自由度;

用途:

計算一個剛體經(jīng)過旋轉(zhuǎn)和平移后的新坐標 ;

計算同一剛體在不同坐標系下的坐標。

2.圖像坐標系,相機坐標系,世界坐標系

圖像坐標系

417d4288-21d8-11ee-962d-dac502259ad0.png

上圖中,是表示以像素為單位的圖像坐標系的坐標,是以為單位的圖像坐標系的坐標,是相機光軸與圖像的交點其對應(yīng)的像素坐標, 每個像素在軸和軸對應(yīng)的 物理尺寸。兩者轉(zhuǎn)換關(guān)系如下:

用矩陣的表示形式:

逆關(guān)系:

相機與世界坐標系

為相機光心,軸與圖像的軸平行,軸為相機光軸與相機圖像平面垂直交點就是圖像坐標原點。與組成的直角坐標系為相機坐標系,為焦距。

418ed5fc-21d8-11ee-962d-dac502259ad0.png

世界坐標系與相機坐標系轉(zhuǎn)換關(guān)系:

式中為的正交單位矩陣,為三維平移向量,為矩陣。

3.相機投影模型(針孔投影模型)

41ac4ace-21d8-11ee-962d-dac502259ad0.png

把圖像平面放到針孔前方(數(shù)學(xué)上等價,計算更簡單):

41c0918c-21d8-11ee-962d-dac502259ad0.png

當已知圖像點p時,由針孔成像模型,任何位于射線OP上的空間點的圖像點都是p點,因此空間點不是唯一確定的。

投影關(guān)系 (從世界坐標系到圖像坐標系)

稱為歸一化焦距,只與相機內(nèi)部參數(shù)有關(guān), 被稱為相機內(nèi)參;由相機相對世界坐標系的方位決定, 被稱為相機外參。確定相機內(nèi)外參數(shù)被稱為相機標定。

4.對極幾何

425be07e-21d8-11ee-962d-dac502259ad0.png

極點: 極點: 右相機坐標原點在左像平面上的像; 極點:左相機坐標原點在右像平面上的像

極平面:由兩個相機坐標原點、和物點組成的平面

極線: 極平面與兩個像平面的交線

極線約束:給定圖像上的一個特征, 它在另一幅圖像上的匹配視圖一定在對應(yīng)的極線上, 即已知則它對應(yīng)在右圖的匹配點一定在極線上反之亦然。

4272a5b6-21d8-11ee-962d-dac502259ad0.png

極線約束給出了對應(yīng)點重要的約束條件,它將對應(yīng)點匹配從整幅圖像中查找壓縮到一條線上查找,大大減小了搜索范圍,對對應(yīng)點的匹配起指導(dǎo)作用。

極限校正怎么實現(xiàn)?

1.三角測量原理

假設(shè)我們兩臺攝像機像平面精準位于同一平面上,且行對齊,兩個光軸嚴格平行。

4298764c-21d8-11ee-962d-dac502259ad0.png

利用三角形關(guān)系我們很容易推出Z值:

如果主點坐標相同則可簡化為:

因為視差,且為我們的深度值, 故:

視差與深度圖關(guān)系:

視差與深度成反比,視差接近0時,微小的視差變化會產(chǎn)生較大的深度變化

當視差較大時,微小的視差變化幾乎不會引起深度多大的變化

因此,立體視覺系統(tǒng)僅物體距離相機較近時具有較高的深度精度

42b3424c-21d8-11ee-962d-dac502259ad0.png

2.極線校正原理

校正過程:將相機在數(shù)學(xué)上對準到同一觀察平面上,使得相機上像素行是嚴格對齊的

42d41b02-21d8-11ee-962d-dac502259ad0.png

校正目的:對兩幅圖像的二維匹配搜索變成一維,節(jié)省計算量,排除虛假匹配點

3.校正算法步驟:(參考文獻A compact algorithm for rectification of stereo pairs

為了將攝相機極點變換到無窮遠使得極線水平對準, 我們創(chuàng)建一個旋轉(zhuǎn)矩陣, 首先是軸的旋轉(zhuǎn), 我們將軸旋轉(zhuǎn)到與基線相同的方向即旋轉(zhuǎn)后新軸就是, 旋轉(zhuǎn)向量:

確定旋轉(zhuǎn)后的新軸, 只需滿足與正交即可:選則與主光軸和相交的方向:

新的軸, 與垂直且滿足右手定則:

最終得到的旋轉(zhuǎn)矩陣:

則左右兩個圖像新的旋轉(zhuǎn)矩陣:

4.校正后,baseline 計算:

42f3de24-21d8-11ee-962d-dac502259ad0.png

下式中是指左相機光心在右相機坐標系下的坐標(也等于與右相機光心的距離),t 求解公式的意義是左相機光心在右相機校正后的坐標系下的坐標(也等于與右相機校正后的坐標系下光心的距離) 。故baseline就是軸方向的距離。

極線校正代碼怎么寫?

//see:"Acompactalgorithmforrectificationofstereopairs",A.Fusiello,E.Trucco,andA.Verri,2000
//極線校正
REALCamera::StereoRectifyFusiello(constcv::Size&size1,constCamera&camera1,constcv::Size&size2,constCamera&camera2,Matrix3x3&R1,Matrix3x3&R2,Matrix3x3&K1,Matrix3x3&K2)
{
//computerelativepose
//計算相對位姿
RMatrixposeR;
CMatrixposeC;
ComputeRelativePose(camera1.R,camera1.C,camera2.R,camera2.C,poseR,poseC);

//newxaxis(baseline,fromC1toC2)
//新的x軸,基線方向
constPoint3v1(camera2.C-camera1.C);
//newyaxes(orthogonaltooldzandnewx)
//新的y軸,垂直舊的Z軸(光軸)和新的X軸
constPoint3v2(camera1.Direction().cross(v1));
//newzaxes(nochoice,orthogonaltobaselineandy)
//新的Z軸,垂直上面兩個新軸
constPoint3v3(v1.cross(v2));

//newextrinsic(translationunchanged)
//新的外參,平移不變
RMatrixR;
R.SetFromRowVectors(normalized(v1),normalized(v2),normalized(v3));

//newintrinsic(arbitrary)
//新的內(nèi)參
K1=camera1.K;K1(0,1)=0;
K2=camera2.K;K2(0,1)=0;
K1(1,1)=K2(1,1)=(camera1.K(1,1)+camera2.K(1,1))/2;

//newrotations
//新的選擇從校正前的相機坐標系轉(zhuǎn)到校正后的相機坐標系
R1=R*camera1.R.t();
R2=R*camera2.R.t();
//計算新的基線距離
constPoint3t(R2*(poseR*(-poseC)));
ASSERT(ISEQUAL(-t.x,norm(v1))&&ISZERO(t.y)&&ISZERO(t.z));
returnt.x;
}//StereoRectifyFusiello

極線校正后的視差圖轉(zhuǎn)校正前的深度圖怎么轉(zhuǎn),代碼怎么實現(xiàn)?

視差圖是校正后的坐標系下得到的值,首先將其轉(zhuǎn)換為校正后坐標系下的深度圖

則:

把上式寫成矩陣形式:

式中定義如下:

將校正后的坐標系下深度圖轉(zhuǎn)換到校正前的相機坐標系下

將校正后的坐標系下深度圖轉(zhuǎn)換到校正前的相機坐標系下

已知:校正前的相機坐標系下坐標轉(zhuǎn)到校正后相機坐標系下坐標轉(zhuǎn)換關(guān)系如下:

則已知校正后的求校正前的公式如下:

再將其投影到圖像坐標系下:

即:

將上兩步合并得到校正后坐標系下的視差圖(與校正前的坐標系下的深度圖的轉(zhuǎn)換矩陣

已知:

則:

代碼實現(xiàn)

轉(zhuǎn)換矩陣求解

boolImage::StereoRectifyImages(constImage&image1,constImage&image2,constPoint3fArr&points1,constPoint3fArr&points2,Image8U3&rectifiedImage1,Image8U3&rectifiedImage2,Image8U&mask1,Image8U&mask2,Matrix3x3&H,Matrix4x4&Q)
{
ASSERT(image1.IsValid()&&image2.IsValid());
ASSERT(image1.GetSize()==image1.image.size()&&image2.GetSize()==image2.image.size());
ASSERT(points1.size()&&points2.size());

#if0
{//displayprojectionpairs
std::vectormatches1,matches2;
FOREACH(i,points1){
matches1.emplace_back(reinterpret_cast(points1[i]));
matches2.emplace_back(reinterpret_cast(points2[i]));
}
RECTIFY::DrawMatches(const_cast(image1.image),const_cast(image2.image),matches1,matches2);
}
#endif

//computerectification
//校正計算
Matrix3x3K1,K2,R1,R2;
#if0
constREALt(Camera::StereoRectify(image1.GetSize(),image1.camera,image2.GetSize(),image2.camera,R1,R2,K1,K2));
#elif1
constREALt(Camera::StereoRectifyFusiello(image1.GetSize(),image1.camera,image2.GetSize(),image2.camera,R1,R2,K1,K2));
#else
Posepose;
ComputeRelativePose(image1.camera.R,image1.camera.C,image2.camera.R,image2.camera.C,pose.R,pose.C);
cv::MatP1,P2;
cv::stereoRectify(image1.camera.K,cv::noArray(),image2.camera.K,cv::noArray(),image1.GetSize(),pose.R,Vec3(pose.GetTranslation()),R1,R2,P1,P2,Q,0/*cv::CALIB_ZERO_DISPARITY*/,-1);
K1=P1(cv::Rect(0,0,3,3));
K2=P2(cv::Rect(0,0,3,3));
constPoint3_t(R2*pose.GetTranslation());
ASSERT((ISZERO(_t.x)||ISZERO(_t.y))&&ISZERO(_t.z));
constREALt(ISZERO(_t.x)?_t.y:_t.x);
#if0
cv::Matmap1,map2;
cv::initUndistortRectifyMap(image1.camera.K,cv::noArray(),R1,K1,image1.GetSize(),CV_16SC2,map1,map2);
cv::remap(image1.image,rectifiedImage1,map1,map2,cv::INTER_CUBIC);
cv::initUndistortRectifyMap(image2.camera.K,cv::noArray(),R2,K2,image1.GetSize(),CV_16SC2,map1,map2);
cv::remap(image2.image,rectifiedImage2,map1,map2,cv::INTER_CUBIC);
return;
#endif
#endif
if(ISZERO(t))
returnfalse;

//adjustrectifiedcameramatricessuchthattheentireareacommontobothsourceimagesiscontainedintherectifiedimages
//調(diào)整校正后的相機矩陣,使兩個源圖像的公共區(qū)域都包含在校正后的圖像中
cv::Sizesize1(image1.GetSize()),size2(image2.GetSize());
if(!points1.empty())
Camera::SetStereoRectificationROI(points1,size1,image1.camera,points2,size2,image2.camera,R1,R2,K1,K2);
ASSERT(size1==size2);

//computerectificationhomography(fromoriginaltorectifiedimage)
//計算校正的單應(yīng)性矩陣(描述的是兩個圖像像素坐標的轉(zhuǎn)換矩陣H[u,v,1]^t=[u',v',1]^t)(從原始圖像到校正圖像)
constMatrix3x3H1(K1*R1*image1.camera.GetInvK());H=H1;
constMatrix3x3H2(K2*R2*image2.camera.GetInvK());

#if0
{//displayepipolarlinesbeforeandafterrectification
Posepose;
ComputeRelativePose(image1.camera.R,image1.camera.C,image2.camera.R,image2.camera.C,pose.R,pose.C);
constMatrix3x3F(CreateF(pose.R,pose.C,image1.camera.K,image2.camera.K));
std::vectormatches1,matches2;
#if1
FOREACH(i,points1){
matches1.emplace_back(reinterpret_cast(points1[i]));
matches2.emplace_back(reinterpret_cast(points2[i]));
}
#endif
RECTIFY::DrawRectifiedImages(image1.image.clone(),image2.image.clone(),F,H1,H2,matches1,matches2);
}
#endif

//rectifyimages(applyhomographies)
//校正圖像,就是利用單應(yīng)性矩陣,把原圖像每個像素坐標轉(zhuǎn)換到校正的圖像下。
rectifiedImage1.create(size1);
cv::warpPerspective(image1.image,rectifiedImage1,H1,rectifiedImage1.size());
rectifiedImage2.create(size2);
cv::warpPerspective(image2.image,rectifiedImage2,H2,rectifiedImage2.size());

//markvalidregionscoveredbytherectifiedimages
//標記正確圖像覆蓋的有效區(qū)域
structCompute{
staticvoidMask(Image8U&mask,constcv::Size&sizeh,constcv::Size&size,constMatrix3x3&H){
mask.create(sizeh);
mask.memset(0);
std::vectorcorners(4);
corners[0]=Point2f(0,0);
corners[1]=Point2f((float)size.width,0);
corners[2]=Point2f((float)size.width,(float)size.height);
corners[3]=Point2f(0,(float)size.height);
cv::perspectiveTransform(corners,corners,H);
std::vector>contours(1);
for(inti=0;i<4;?++i)
????contours.front().emplace_back(ROUND2INT(corners[i]));
???cv::drawContours(mask,?contours,?0,?cv::Scalar(255),?cv::FILLED);
??}
?};
?Compute::Mask(mask1,?size1,?image1.GetSize(),?H1);
?Compute::Mask(mask2,?size2,?image2.GetSize(),?H2);

?//?from?the?formula?that?relates?disparity?to?depth?as?z=B*f/d?where?B=-t?and?d=x_l-x_r
?//?and?the?formula?that?converts?the?image?projection?from?right?to?left?x_r=K1*K2.inv()*x_l
?//?compute?the?inverse?projection?matrix?that?transforms?image?coordinates?in?image?1?and?its
?//?corresponding?disparity?value?to?the?3D?point?in?camera?1?coordinates?as:
?//?根據(jù)depth=Bf/d的關(guān)系,計算投影矩陣Q將校正的視差圖轉(zhuǎn)到為校正的深度圖。
?ASSERT(ISEQUAL(K1(1,1),K2(1,1)));
?Q?=?Matrix4x4::ZERO;
?//???Q?*?[x,?y,?disparity,?1]?=?[X,?Y,?Z,?1]?*?w
?ASSERT(ISEQUAL(K1(0,0),K2(0,0))?&&?ISZERO(K1(0,1))?&&?ISZERO(K2(0,1)));
?Q(0,0)?=?Q(1,1)?=?REAL(1);
?Q(0,3)?=?-K1(0,2);
?Q(1,3)?=?-K1(1,2);
?Q(2,3)?=??K1(0,0);
?Q(3,2)?=?-REAL(1)/t;
?Q(3,3)?=??(K1(0,2)-K2(0,2))/t;

?//?compute?Q?that?converts?disparity?from?rectified?to?depth?in?original?image
?//?計算將視差從校正到原始圖像深度轉(zhuǎn)換的Q值
?Matrix4x4?P(Matrix4x4::IDENTITY);
?cv::Mat(4,4,cv::DataType::type,P.val)(cv::Rect(0,0,3,3)));
Q=P*Q;
returntrue;
}

根據(jù)求解的轉(zhuǎn)換矩陣進行視差圖和深度圖相互轉(zhuǎn)換

/**
*@brief 根據(jù)原圖的深度圖計算校正后的圖像的視差圖,視差圖事先根據(jù)有效尺寸分配好。
*
*@param[in]depthMap原圖的深度圖
*@param[in] invH 轉(zhuǎn)換矩陣:把校正圖的像素坐標轉(zhuǎn)換到原圖
*@param[in]invQ轉(zhuǎn)換矩陣把[x*zy*zz1]*winoriginalimagecoordinates(z即為depth)轉(zhuǎn)到[x'y'disparity1]inrectifiedcoordinates
*@param[in] subpixelSteps 亞像素精度,如果是4則對于精度是0.25,主要是視差值存儲的都是整型。所以得到的視差會乘這個值轉(zhuǎn)成整型。具體轉(zhuǎn)回float真值時會除掉這個數(shù)
*@param[in]disparityMap視差圖
*/
voidSemiGlobalMatcher::Depth2DisparityMap(constDepthMap&depthMap,constMatrix3x3&invH,constMatrix4x4&invQ,DisparitysubpixelSteps,DisparityMap&disparityMap)
{
autopixel=[&](int,intr,intc){
//rc加half窗口的原因是視差圖是有效像素開始的起始是從(halfWindowSizeX,halfWindowSizeY)開始的而非(0,0)
constImageRefx(c+halfWindowSizeX,r+halfWindowSizeY);Point2fu;
//把校正圖像上的像素坐標轉(zhuǎn)到原圖坐標上
ProjectVertex_3x3_2_2(invH.val,x.ptr(),u.ptr());
floatdepth,disparity;
//取深度值depth并轉(zhuǎn)到視差上
if(!depthMap.sampleSafe(depth,u,[](Depthd){returnd>0;})||!Image::Depth2Disparity(invQ,u,depth,disparity))
disparityMap(r,c)=NO_DISP;
else
disparityMap(r,c)=(Disparity)ROUND2INT(disparity*subpixelSteps);
};
ASSERT(threads.IsEmpty());
if(!threads.empty()){
volatileThread::safe_tidxPixel(-1);
FOREACH(i,threads)
threads.AddEvent(newEVTPixelProcess(disparityMap.size(),idxPixel,pixel));
WaitThreadWorkers(threads.size());
}else
for(intr=0;r

責任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4697

    瀏覽量

    68099
  • 立體視覺
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    9762
  • 三維重建
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    9881

原文標題:極線校正后的視差圖轉(zhuǎn)校正前的深度圖怎么轉(zhuǎn),代碼怎么實現(xiàn)?

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問DLP3435 T型校正實現(xiàn)方法是靠光傳感器實現(xiàn)的嗎

    求教下 DLP3435DE T型校正實現(xiàn)方法是靠光傳感器實現(xiàn)的嗎 ,以及DLP3435的N6腳的3DR引腳是這樣定義的
    發(fā)表于 02-14 09:45

    請問adxrs646溫度校正的多點校正方法是什么?

    Weinberg》這篇文章里描述了一種3點校正方法,并提到了采取多點校正方法能提高到40°/h以內(nèi),如果是這樣的話可以滿足我的設(shè)計要求,請問一下具體的多點
    發(fā)表于 03-01 13:53

    傳感器線性校正方法的原理是什么?

    傳感器的非線性校正多種方法,并且也都得到了不同程度的應(yīng)用。傳統(tǒng)的非線性傳感器線性化的方法是硬件補償,這種方法難以做到全程補償,而且補償硬件
    發(fā)表于 10-30 06:30

    光譜儀的正確校正方法

    產(chǎn)品,在使用過程中應(yīng)當節(jié)約,盡量不要用作其他用途。當光譜校正標樣使用完以后,請聯(lián)系儀器維護工程師,不建議自行購買。一般校正方法如下:全譜型:只需激發(fā)單塊標樣,即可通過軟件算法自動完成所有譜線的
    發(fā)表于 12-14 16:11

    基于FPGA的兩點非均勻校正模塊的設(shè)計與實現(xiàn)

    兩點校正算法是一種行之有效的紅外圖像非均勻校正方法.本文對兩點校正算法進行了分析,并推導(dǎo)出了該算法的定點表示形式.利用FPGA在硬件上實現(xiàn)了該算法,內(nèi)部采用流水線技術(shù),
    發(fā)表于 08-15 11:37 ?17次下載

    基于FPGA的數(shù)字穩(wěn)定校正單元的實現(xiàn)

    為了實現(xiàn)對非相干雷達的接收相參處理,基于數(shù)字穩(wěn)定校正(DSU)的原理,采用ALTERA公司的StratixⅡ系列芯片和VHDL編程語言,設(shè)計了一種基于FPGA的DSU硬件實現(xiàn)方法。實驗
    發(fā)表于 06-26 15:48 ?27次下載
    基于FPGA的數(shù)字穩(wěn)定<b class='flag-5'>校正</b>單元的<b class='flag-5'>實現(xiàn)</b>

    三目立體視覺外極線校正及其FPGA實現(xiàn)方法

    三目立體視覺外極線校正及其FPGA實現(xiàn)方法
    發(fā)表于 09-17 07:30 ?16次下載

    線性系統(tǒng)的校正方法

    線性系統(tǒng)的校正方法
    發(fā)表于 12-30 15:04 ?0次下載

    利用紋理映射技術(shù)實現(xiàn)魚眼鏡頭校正研究

    本文詳細介紹了采用紋理映射技術(shù)實現(xiàn)魚眼鏡頭校正方法。實驗表明,該方法不但校正好地完成了鏡頭的校正
    發(fā)表于 09-07 20:02 ?9次下載

    基于距離徙動校正的彈速補償FPGA實現(xiàn)方法

    針對高速運動平臺彈速補償?shù)膶崟r性要求,在基于距離徙動校正(Range Cell Migration Compensation,RCMC) 的思想上提出了一種彈速補償?shù)腇PGA實現(xiàn)方法。將距離徙動
    發(fā)表于 03-30 09:56 ?2614次閱讀
    基于距離徙動<b class='flag-5'>校正</b>的彈速補償FPGA<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>方法</b>

    CCD圖像采集過程中如何進行實時誤差校正兩種方法詳細說明

    根據(jù)引入誤差的設(shè)備不同,分別介紹了兩種誤差實時校正方法——信號采集部分的實時誤差校正和輸出設(shè)備的實時誤差預(yù)校正的原理和實現(xiàn)方法。 兩種誤差實
    發(fā)表于 11-22 17:17 ?18次下載
    CCD圖像采集過程中如何進行實時誤差<b class='flag-5'>校正</b>兩種<b class='flag-5'>方法</b>詳細說明

    基于多體量子糾纏的量子傳感實現(xiàn)海森堡極限精度的測量

    據(jù)了解,基于多體量子糾纏的量子傳感能突破標準量子極限,實現(xiàn)海森堡極限精度的測量,然而在實驗上制備多粒子糾纏態(tài)常常面臨著較大的挑戰(zhàn)。因此,發(fā)展出能達到海森堡極限測量精度且在實驗上易于
    的頭像 發(fā)表于 01-15 17:34 ?2560次閱讀

    數(shù)列極限的求解方法及案例分析

    數(shù)列極限的求解方法及案例分析
    發(fā)表于 03-24 10:25 ?0次下載
    數(shù)列<b class='flag-5'>極限</b>的求解<b class='flag-5'>方法</b>及案例分析

    使用FPGA實現(xiàn)紅外焦平面器件的非均勻性校正的詳細資料說明

    平面器件應(yīng)用的一個關(guān)鍵技術(shù),盡管現(xiàn)在已經(jīng)很多種基于場景的非均勻性校正方法,但是兩點校正算法仍然是基礎(chǔ)的校正方法,不可替代的價值。兩點
    發(fā)表于 03-26 15:58 ?29次下載
    使用FPGA<b class='flag-5'>實現(xiàn)</b>紅外焦平面器件的非均勻性<b class='flag-5'>校正</b>的詳細資料說明

    thdp0200探頭校正方法和步驟

    thdp0200探頭校正方法和步驟 THDP0200探頭是一種常用于測量電壓、電流、頻率等信號的設(shè)備。為了確保其測量結(jié)果的準確性和可靠性,定期進行探頭校正非常重要。本文將詳細介紹THDP0200
    的頭像 發(fā)表于 01-08 15:38 ?479次閱讀