cCaseNamePoint * cX11_Interface::GetIndexNamePoint() { Video_Win aW = mMenuNamePoint->W(); aW.raise(); for (int aK=0 ; aK<int(mVNameCase.size()) ; aK++) { int aGr = (aK%2) ? 255 : 200 ; Pt2di aPCase(0,aK); mMenuNamePoint->ColorieCase(aPCase,aW.prgb()(aGr,aGr,aGr),1); cCaseNamePoint & aCNP = mVNameCase[aK]; mMenuNamePoint->StringCase(aPCase,aCNP.mFree ? aCNP.mName : "***" ,true); } Clik aClk = aW.clik_in(); //aW.lower(); Pt2di aKse = mMenuNamePoint->Pt2Case(Pt2di(aClk._pt)); cCaseNamePoint * aRes = &(mVNameCase[aKse.y]); //cout << aRes->mName << " Type " << aRes->mTCP << endl; if (! aRes->mFree) return 0; return aRes; }
void cASAMG::TestDifProf(const cASAMG & aNE) const { Im2D_REAL4 aImDif(mSz.x,mSz.y,1000); TIm2D<REAL4,REAL8> aTDif(aImDif); Pt2di anIndex; for (anIndex.x=0 ; anIndex.x <mSz.x ; anIndex.x++) { for (anIndex.y=0 ; anIndex.y <mSz.y ; anIndex.y++) { if (mTMasqN.get(anIndex)) { Pt3dr aPE = mStdN->PtOfIndex(anIndex); aTDif.oset(anIndex,aNE.SignedDifProf(aPE)); } } } Video_Win * aW = TheWinIm(); if (aW) { ELISE_COPY ( aImDif.all_pts(), Min(255,Abs(aImDif.in()*300)), aW->ogray() ); aW->clik_in(); } }
std::vector<Pt2dr> cICL_Courbe::GetPoly(INT NbPtsMax,bool ForceLosange) { ELISE_ASSERT(pW!=0,"cICL_Courbe::GetPoly()"); static bool First = true; if (! First) pW->clik_in(); First = false; pW->clear(); pW->draw_circle_loc ( ToLoc(Pt2dr(0,0)), mScale, pW->pdisc()(P8COL::red) ); std::vector<Pt2dr> aRes; while (true) { Clik aCl = pW->clik_in(); Pt2dr aP = (Pt2dr(aCl._pt)-mP0) / mScale; if (NbPtsMax-1 == INT(aRes.size())) aCl._b = 3; if (ForceLosange && (aRes.size()==3)) { aP = aRes[0]+ aRes[2] - aRes[1]; aCl._b = 3; } pW->draw_circle_loc(ToLoc(aP),3.0,pW->pdisc()(P8COL::green)); if (! aRes.empty()) pW->draw_seg(ToLoc(aRes.back()),ToLoc(aP),pW->pdisc()(P8COL::green)); aRes.push_back(aP); if (aCl._b == 3) { pW->draw_seg(ToLoc(aRes[0]),ToLoc(aP),pW->pdisc()(P8COL::green)); return aRes; } } return aRes; }
void TestXmlX11() { Video_Win aW = Video_Win::WStd(Pt2di(700,800),1.0); cElXMLTree aFullTreeParam("EnvVino.xml"); cWXXVinoSelector aSelector("FXDiv10.tif"); cElXMLTree aFilter("FilterVino.xml"); cWindowXmlEditor aWX(aW,true,aFullTreeParam.Fils().front(),&aSelector,&aFilter); // cWXXTreeSelector aSelId; aWX.TopDraw(); aWX.Interact(); aW.clear(); aW.clik_in(); aWX.TopDraw(); aWX.Interact(); aFullTreeParam.StdShow("SORTIE.xml"); }
void FiltreRemoveBorderHeter(Im2D_REAL4 anIm,Im2D_U_INT1 aImMasq,double aCostRegul,double aCostTrans) { Pt2di aSz = anIm.sz(); double aVMax,aVMin; ELISE_COPY(aImMasq.border(1),0,aImMasq.out()); ELISE_COPY(aImMasq.all_pts(),aImMasq.in()!=0,aImMasq.out()); ELISE_COPY(anIm.all_pts(),anIm.in(),VMax(aVMax)|VMin(aVMin)); Video_Win * aW = Video_Win::PtrWStd(aSz); ELISE_COPY(anIm.all_pts(),(anIm.in()-aVMin) * (255.0/(aVMax-aVMin)),aW->ogray()); std::cout << "VMAX " << aVMax << "\n"; //ELISE_COPY(aW->all_pts(),aImMasq.in(),aW->odisc()); //aW->clik_in(); ELISE_COPY ( aW->all_pts(), nflag_close_sym(flag_front8(aImMasq.in_proj()!=0)), aW->out_graph(Line_St(aW->pdisc()(P8COL::red))) ); cParamFiltreDepthByPrgDyn aParam = StdGetFromSI(Basic_XML_MM_File("DefFiltrPrgDyn.xml"),ParamFiltreDepthByPrgDyn); aParam.CostTrans() = aCostTrans; aParam.CostRegul() = aCostRegul; Im2D_Bits<1> aNewMasq = FiltrageDepthByProgDyn(anIm,aImMasq,aParam); ELISE_COPY ( select(aNewMasq.all_pts(),aNewMasq.in()), 2, aImMasq.out() ); TIm2D<U_INT1,INT> aTMasq(aImMasq); FiltrageCardCC(false,aTMasq,2,0,100); Neighbourhood aNV4=Neighbourhood::v4(); Neigh_Rel aNrV4 (aNV4); ELISE_COPY ( conc ( select(select(aImMasq.all_pts(),aImMasq.in()==1),aNrV4.red_sum(aImMasq.in()==0)), aImMasq.neigh_test_and_set(aNV4,1,0,256) ), 3, Output::onul() ); ELISE_COPY ( aNewMasq.all_pts(), aImMasq.in(), aW->odisc() ); /* ELISE_COPY ( aW->all_pts(), nflag_close_sym(flag_front8(aNewMasq.in_proj())), aW->out_graph(Line_St(aW->pdisc()(P8COL::green))) ); */ aW->clik_in(); }