本文整理汇总了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;
}
}
示例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;
}
示例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;
}
示例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);
}