本文整理汇总了Java中jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster.createInterface方法的典型用法代码示例。如果您正苦于以下问题:Java INyARRgbRaster.createInterface方法的具体用法?Java INyARRgbRaster.createInterface怎么用?Java INyARRgbRaster.createInterface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster
的用法示例。
在下文中一共展示了INyARRgbRaster.createInterface方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: setRaster
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* この関数は、ラスタから差分画像を生成して、インスタンスに格納します。
* @param i_raster
* 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。
* {@link NyARBufferType#INT1D_X8R8G8B8_32}形式のバッファを持つラスタの場合、他の形式よりも
* 何倍か高速に動作します。
*/
public void setRaster(INyARRgbRaster i_raster)
{
//ドライバの生成
if(this._last_input_raster!=i_raster){
this._last_drv=(IRasterDriver) i_raster.createInterface(IRasterDriver.class);
this._last_input_raster=i_raster;
}
this._pow=this._last_drv.makeColorData(this._data);
return;
}
示例2: update
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* この関数は、入力画像を元にインスタンスの状態を更新します。
* 関数はタイムスタンプをインクリメントします。
* @param i_input
* カラー画像。画像のサイズは、コンストラクタに設定したスクリーンサイズと同じである必要があります。
* この画像は、次回の{@link #update}まで、インスタンスから参照されます。
*/
public void update(INyARRgbRaster i_input)
{
//ラスタドライバの準備
if(this._ref_raster!=i_input){
this._rgb2gs=(INyARRgb2GsFilter) i_input.createInterface(INyARRgb2GsFilter.class);
this._pcopy=(INyARPerspectiveCopy) i_input.createInterface(INyARPerspectiveCopy.class);
this._ref_raster=i_input;
}
//ソースidのインクリメント
this._src_ts++;
}
示例3: main
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* テストパターン
* @param args
*/
public static void main(String[] args)
{
NyARDoubleMatrix44 DEST_MAT=new NyARDoubleMatrix44(
new double[]{
0.9832165682361184,0.004789697223621061,-0.18237945710280384,-190.59060790299358,
0.012860184615056927,-0.9989882709616935,0.04309419210331572,64.04490277502563,
-0.18198852802987958,-0.044716355753573425,-0.9822833548209547,616.6427596804766,
0,0,0,1});
NyARDoubleMatrix44 SRC_MAT=new NyARDoubleMatrix44(new double[]{
0.984363556, 0.00667689135, -0.176022261, -191.179672,
0.0115975942, -0.999569774, 0.0269410834, 63.0028076,
-0.175766647, -0.0285612550, -0.984017432, 611.758728,
0,0,0,1});
try {
String img_file="../Data/testcase/test.raw";
String cparam= "../Data/testcase/camera_para5.dat";
String fsetfile="../Data/testcase/pinball.fset";
String isetfile="../Data/testcase/pinball.iset5";
//カメラパラメータ
NyARParam param=NyARParam.loadFromARParamFile(new FileInputStream(cparam),640,480,NyARParam.DISTFACTOR_RAW);
NyARDoublePoint2d d=new NyARDoublePoint2d();
param.getDistortionFactor().ideal2Observ(100,100, d);
param.getDistortionFactor().observ2Ideal(100,100, d);
INyARGrayscaleRaster gs=NyARGrayscaleRaster.createInstance(640,480);
//試験画像の準備
{
INyARRgbRaster rgb=NyARRgbRaster.createInstance(640,480,NyARBufferType.BYTE1D_B8G8R8X8_32);
FileInputStream fs = new FileInputStream(img_file);
fs.read((byte[])rgb.getBuffer());
INyARRgb2GsFilterRgbAve filter=(INyARRgb2GsFilterRgbAve) rgb.createInterface(INyARRgb2GsFilterRgbAve.class);
filter.convert(gs);
}
NyARDoubleMatrix44 ret=new NyARDoubleMatrix44();
NyARNftFsetFile fset=NyARNftFsetFile.loadFromFsetFile(new FileInputStream(fsetfile));
NyARNftIsetFile iset=NyARNftIsetFile.loadFromIsetFile(new FileInputStream(isetfile));
AR2Handle tracking=new AR2Handle(param,iset,fset);
tracking.ar2SetTrackingThresh(5.0);
tracking.ar2SetSimThresh(0.50);
tracking.ar2SetSearchFeatureNum(16);
tracking.ar2SetSearchSize(12);
tracking.ar2SetTemplateSize1(6);
tracking.ar2SetTemplateSize2(6);
//validation test
for(int j=0;j<10;j++){
long s=System.currentTimeMillis();
for(int i=0;i<3000;i++){
tracking.setInitialTransmat(SRC_MAT);
ret.setValue(SRC_MAT);
tracking.ar2Tracking(gs, ret);
}
System.out.println(System.currentTimeMillis()-s);
System.out.println(ret.equals(DEST_MAT));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
示例4: main
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* @param args
*/
public static void main(String[] args)
{
try {
String img_file="../Data/testcase/test.raw";
String cparam_file= "../Data/testcase/camera_para5.dat";
String fsetfile="../Data/testcase/pinball.fset";
String fset3file="../Data/testcase/pinball.fset3";
String isetfile="../Data/testcase/pinball.iset5";
//カメラパラメータ
NyARParam param=NyARParam.loadFromARParamFile(new FileInputStream(cparam_file),640,480,NyARParam.DISTFACTOR_RAW);
INyARGrayscaleRaster gs=NyARGrayscaleRaster.createInstance(640,480);
//試験画像の準備
{
INyARRgbRaster rgb=NyARRgbRaster.createInstance(640,480,NyARBufferType.BYTE1D_B8G8R8X8_32);
FileInputStream fs = new FileInputStream(img_file);
fs.read((byte[])rgb.getBuffer());
INyARRgb2GsFilterRgbAve filter=(INyARRgb2GsFilterRgbAve) rgb.createInterface(INyARRgb2GsFilterRgbAve.class);
filter.convert(gs);
}
NyARNftFreakFsetFile f = NyARNftFreakFsetFile.loadFromfset3File(new FileInputStream(new File(fset3file)));
long st;
st=System.currentTimeMillis();
KpmHandle kpm=new KpmHandle(new ARParamLT(param));
kpm.kpmSetRefDataSet(f);
System.out.println(System.currentTimeMillis()-st);
for(int j=0;j<10;j++){
st=System.currentTimeMillis();
for(int i=0;i<10;i++){
kpm.kpmMatching(gs);
}
System.out.println(System.currentTimeMillis()-st);
}
NyARDoubleMatrix44 TEST_PATT=new NyARDoubleMatrix44(new double[]{ 0.9843635410774265,0.006676891783837065,-0.17602226595996517,-191.17967199668533,
0.011597578022657571,-0.9995697471256431,0.02694098764508235,63.00280574839347,
-0.17576664981496215,-0.028561157958401542,-0.9840174516078957 ,611.7587155355864,
0,0,0,1});
System.out.println(TEST_PATT.equals(kpm.result[0].camPose));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
示例5: main
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
public static void main(String[] args)
{
NyARDoubleMatrix44 DEST_MAT=new NyARDoubleMatrix44(
new double[]{
0.9832165682361184,0.004789697223621061,-0.18237945710280384,-190.59060790299358,
0.012860184615056927,-0.9989882709616935,0.04309419210331572,64.04490277502563,
-0.18198852802987958,-0.044716355753573425,-0.9822833548209547,616.6427596804766,
0,0,0,1});
NyARDoubleMatrix44 SRC_MAT=new NyARDoubleMatrix44(new double[]{
0.984363556, 0.00667689135, -0.176022261, -191.179672,
0.0115975942, -0.999569774, 0.0269410834, 63.0028076,
-0.175766647, -0.0285612550, -0.984017432, 611.758728,
0,0,0,1});
try {
String img_file="../Data/testcase/test.raw";
String cparam= "../Data/testcase/camera_para5.dat";
String fsetfile="../Data/testcase/pinball.fset";
String isetfile="../Data/testcase/pinball.iset5";
//カメラパラメータ
NyARParam param=NyARParam.loadFromARParamFile(new FileInputStream(cparam),640,480,NyARParam.DISTFACTOR_LT_ARTK5);
INyARGrayscaleRaster gs=NyARGrayscaleRaster.createInstance(640,480);
//試験画像の準備
{
INyARRgbRaster rgb=NyARRgbRaster.createInstance(640,480,NyARBufferType.BYTE1D_B8G8R8X8_32);
FileInputStream fs = new FileInputStream(img_file);
fs.read((byte[])rgb.getBuffer());
INyARRgb2GsFilterRgbAve filter=(INyARRgb2GsFilterRgbAve) rgb.createInterface(INyARRgb2GsFilterRgbAve.class);
filter.convert(gs);
}
NyARNftFsetFile fset=NyARNftFsetFile.loadFromFsetFile(new FileInputStream(fsetfile));
NyARNftIsetFile iset=NyARNftIsetFile.loadFromIsetFile(new FileInputStream(isetfile));
NyARSurfaceTracker st=new NyARSurfaceTracker(param,16,0.5);
NyARSurfaceDataSet sd=new NyARSurfaceDataSet(iset,fset);
NyARDoubleMatrix44 sret=new NyARDoubleMatrix44();
NyARDoublePoint2d[] o_pos2d=NyARDoublePoint2d.createArray(16);
NyARDoublePoint3d[] o_pos3d=NyARDoublePoint3d.createArray(16);
NyARSurfaceTrackingTransmatUtils tmat=new NyARSurfaceTrackingTransmatUtils(param,5.0);
NyARDoubleMatrix44 tret=new NyARDoubleMatrix44();
for(int j=0;j<10;j++){
long s=System.currentTimeMillis();
for(int i=0;i<3000;i++){
sret.setValue(SRC_MAT);
int nop=st.tracking(gs, sd,sret, o_pos2d, o_pos3d,16);
//Transmatの試験
NyARDoublePoint3d off=NyARSurfaceTrackingTransmatUtils.centerOffset(o_pos3d,nop,new NyARDoublePoint3d());
NyARSurfaceTrackingTransmatUtils.modifyInputOffset(sret, o_pos3d,nop,off);
tmat.surfaceTrackingTransmat(sret, o_pos2d, o_pos3d, nop,tret,new NyARTransMatResultParam());
NyARSurfaceTrackingTransmatUtils.restoreOutputOffset(tret,off);
System.out.println(tret.equals(DEST_MAT));
}
System.out.println(System.currentTimeMillis()-s);
}
return;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
示例6: main
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* @param args
*/
public static void main(String[] args)
{
try {
String img_file="../Data/testcase/test.raw";
String cparam_file= "../Data/testcase/camera_para5.dat";
String fset3file="../Data/testcase/pinball.fset3";
//カメラパラメータ
NyARParam param=NyARParam.loadFromARParamFile(new FileInputStream(cparam_file),640,480,NyARParam.DISTFACTOR_LT_ARTK5);
INyARGrayscaleRaster gs=NyARGrayscaleRaster.createInstance(640,480);
//試験画像の準備
{
INyARRgbRaster rgb=NyARRgbRaster.createInstance(640,480,NyARBufferType.BYTE1D_B8G8R8X8_32);
FileInputStream fs = new FileInputStream(img_file);
fs.read((byte[])rgb.getBuffer());
INyARRgb2GsFilterRgbAve filter=(INyARRgb2GsFilterRgbAve) rgb.createInterface(INyARRgb2GsFilterRgbAve.class);
filter.convert(gs);
}
NyARDoubleMatrix44 tmat=new NyARDoubleMatrix44();
NyARNftFreakFsetFile f = NyARNftFreakFsetFile.loadFromfset3File(new FileInputStream(new File(fset3file)));
// KpmHandle kpm=new KpmHandle(new ARParamLT(param));
long st;
st=System.currentTimeMillis();
FreakKeypointMatching kpm=new FreakKeypointMatching(param);
KeyframeMap keymap=new KeyframeMap(f,0);
System.out.println(System.currentTimeMillis()-st);
for(int j=0;j<4;j++){
st=System.currentTimeMillis();
for(int i=0;i<20;i++){
kpm.updateInputImage(gs);
kpm.updateFeatureSet();
kpm.kpmMatching(keymap,tmat);
}
//FreakKeypointMatching#kMaxNumFeaturesを300にしてテストして。
System.out.println("Total="+(System.currentTimeMillis()-st));
NyARDoubleMatrix44 TEST_PATT=new NyARDoubleMatrix44(new double[]{ 0.9843635410774265,0.006676891783837065,-0.17602226595996517,-191.17967199668533,
0.011597578022657571,-0.9995697471256431,0.02694098764508235,63.00280574839347,
-0.17576664981496215,-0.028561157958401542,-0.9840174516078957 ,611.7587155355864,
0,0,0,1});
System.out.println(TEST_PATT.equals(tmat));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
示例7: addARMarker
import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
* この関数は、画像からARマーカパターンを生成して、登録します。
* ビットマップ等の画像から生成したパターンは、撮影画像から生成したパターンファイルと比較して、撮影画像の色調変化に弱くなります。
* 注意してください。
* @param i_raster
* マーカ画像を格納したラスタオブジェクト
* @param i_patt_resolution
* マーカの解像度
* @param i_patt_edge_percentage
* マーカのエッジ領域のサイズ。マーカパターンは、i_rasterからエッジ領域を除いたパターンから生成します。
* ARToolKitスタイルの画像を用いる場合は、25を指定します。
* @param i_marker_size
* マーカの平方サイズ[mm]
* @return
* マーカID(ハンドル)値。
*/
public int addARMarker(INyARRgbRaster i_raster,int i_patt_resolution,int i_patt_edge_percentage,double i_marker_size)
{
NyARCode c=new NyARCode(i_patt_resolution,i_patt_resolution);
NyARIntSize s=i_raster.getSize();
//ラスタからマーカパターンを切り出す。
INyARPerspectiveCopy pc=(INyARPerspectiveCopy)i_raster.createInterface(INyARPerspectiveCopy.class);
INyARRgbRaster tr=NyARRgbRaster.createInstance(i_patt_resolution,i_patt_resolution);
pc.copyPatt(0,0,s.w,0,s.w,s.h,0,s.h,i_patt_edge_percentage, i_patt_edge_percentage,4, tr);
//切り出したパターンをセット
c.setRaster(tr);
return this.addARMarker(c,i_patt_edge_percentage,i_marker_size);
}