当前位置: 首页>>代码示例>>Java>>正文


Java INyARRgbRaster.getPixel方法代码示例

本文整理汇总了Java中jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster.getPixel方法的典型用法代码示例。如果您正苦于以下问题:Java INyARRgbRaster.getPixel方法的具体用法?Java INyARRgbRaster.getPixel怎么用?Java INyARRgbRaster.getPixel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster的用法示例。


在下文中一共展示了INyARRgbRaster.getPixel方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: convertRect

import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
public void convertRect(int l,int t,int w,int h,INyARGrayscaleRaster o_raster)
{
	int[] wk=this._wk;
	final int b=t+h;
	final int pix_count=w;
	switch(o_raster.getBufferType()){
	default:
		INyARRgbRaster in_drv=this._ref_raster;
		for (int y = t; y < b; y++) {
			for (int x = pix_count-1; x >=0; x--){
				in_drv.getPixel(x,y,wk);
				o_raster.setPixel(x,y,(wk[0]+wk[1]+wk[2])/3);
			}
		}
		return;
	}
}
 
开发者ID:nyatla,项目名称:NyARToolkit,代码行数:18,代码来源:NyARRgb2GsFilterFactory.java

示例2: createHistogram

import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
public void createHistogram(int i_l,int i_t,int i_w,int i_h,int i_skip,NyARHistogram o_histogram)
{
	o_histogram.reset();
	int[] data_ptr=o_histogram.data;
	INyARRgbRaster drv=this._gsr;
	final int pix_count=i_w;
	final int pix_mod_part=pix_count-(pix_count%8);			
	//左上から1行づつ走査していく
	for (int y = i_h-1; y >=0 ; y-=i_skip){
		for (int x = pix_count-1; x >=pix_mod_part; x--){
			drv.getPixel(x,y,tmp);
			data_ptr[(tmp[0]+tmp[1]+tmp[2])/3]++;
		}
	}
	o_histogram.total_of_data=i_w*i_h/i_skip;
	return;
}
 
开发者ID:nyatla,项目名称:NyARToolkit,代码行数:18,代码来源:NyARHistogramFromRasterFactory.java

示例3: makeColorData

import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
public double makeColorData(int[] o_out)
{
	NyARIntSize size=this._ref_raster.getSize();
	INyARRgbRaster pixdev=this._ref_raster;
	int[] rgb=this.__rgb;
	int width=size.w;
	//<平均値計算>
	int ave=0;//<PV/>
	for(int y=size.h-1;y>=0;y--){
		for(int x=width-1;x>=0;x--){
			pixdev.getPixel(x,y,rgb);
			ave += rgb[0]+rgb[1]+rgb[2];
		}
	}
	//<平均値計算>
	int number_of_pix=size.w*size.h;
	ave=number_of_pix*255*3-ave;
	ave =255-(ave/ (number_of_pix * 3));//(255-R)-ave を分解するための事前計算

	int sum = 0,w_sum;
	int input_ptr=number_of_pix*3-1;
	//<差分値計算>
	for(int y=size.h-1;y>=0;y--){
		for(int x=width-1;x>=0;x--){
			pixdev.getPixel(x,y,rgb);
			w_sum = (ave - rgb[2]) ;o_out[input_ptr--] = w_sum;sum += w_sum * w_sum;//B
			w_sum = (ave - rgb[1]) ;o_out[input_ptr--] = w_sum;sum += w_sum * w_sum;//G
			w_sum = (ave - rgb[0]) ;o_out[input_ptr--] = w_sum;sum += w_sum * w_sum;//R
		}
	}
	//<差分値計算(FORの1/8展開)/>
	final double p=Math.sqrt((double) sum);
	return p!=0.0?p:0.0000001;
	
}
 
开发者ID:nyatla,项目名称:NyARToolkit,代码行数:36,代码来源:NyARMatchPattDeviationColorData.java

示例4: setRaster

import jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster; //导入方法依赖的package包/类
/**
 * この関数は、元画像を回転してから、差分画像を生成して、格納します。
 * 制限として、この関数はあまり高速ではありません。連続使用するときは、最適化を検討してください。
 * @param i_raster
 * 差分画像の元画像。サイズは、このインスタンスと同じである必要があります。
 * @param i_direction
 * 右上の位置です。0=1象限、1=2象限、、2=3象限、、3=4象限の位置に対応します。
 * @throws NyARRuntimeException
 */
public final void setRaster(INyARRgbRaster i_raster,int i_direction)
{
	int width=this._size.w;
	int height=this._size.h;
	int i_number_of_pix=width*height;
	int[] rgb=new int[3];
	int[] dout=this._data;
	int ave;//<PV/>
	//<平均値計算>
	ave = 0;
	for(int y=height-1;y>=0;y--){
		for(int x=width-1;x>=0;x--){
			i_raster.getPixel(x,y,rgb);
			ave += rgb[0]+rgb[1]+rgb[2];
		}
	}
	//<平均値計算>
	ave=i_number_of_pix*255*3-ave;
	ave =255-(ave/ (i_number_of_pix * 3));//(255-R)-ave を分解するための事前計算

	int sum = 0,w_sum;
	int input_ptr=i_number_of_pix*3-1;
	switch(i_direction)
	{
	case 0:
		for(int y=height-1;y>=0;y--){
			for(int x=width-1;x>=0;x--){
				i_raster.getPixel(x,y,rgb);
				w_sum = (ave - rgb[2]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//B
				w_sum = (ave - rgb[1]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//G
				w_sum = (ave - rgb[0]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//R
			}
		}
		break;
	case 1:
		for(int x=0;x<width;x++){
			for(int y=height-1;y>=0;y--){
				i_raster.getPixel(x,y,rgb);
				w_sum = (ave - rgb[2]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//B
				w_sum = (ave - rgb[1]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//G
				w_sum = (ave - rgb[0]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//R
			}
		}
		break;
	case 2:
		for(int y=0;y<height;y++){
			for(int x=0;x<width;x++){
				i_raster.getPixel(x,y,rgb);
				w_sum = (ave - rgb[2]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//B
				w_sum = (ave - rgb[1]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//G
				w_sum = (ave - rgb[0]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//R
			}
		}
		break;
	case 3:
		for(int x=width-1;x>=0;x--){
			for(int y=0;y<height;y++){
				i_raster.getPixel(x,y,rgb);
				w_sum = (ave - rgb[2]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//B
				w_sum = (ave - rgb[1]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//G
				w_sum = (ave - rgb[0]) ;dout[input_ptr--] = w_sum;sum += w_sum * w_sum;//R
			}
		}
		break;
		
	}
	//<差分値計算>
	//<差分値計算(FORの1/8展開)/>
	final double p=Math.sqrt((double) sum);
	this._pow=(p!=0.0?p:0.0000001);
}
 
开发者ID:nyatla,项目名称:NyARToolkit,代码行数:81,代码来源:NyARMatchPattDeviationColorData.java


注:本文中的jp.nyatla.nyartoolkit.core.raster.rgb.INyARRgbRaster.getPixel方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。