OSDN Git Service

[Backup]NyARToolkit for Java
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Thu, 27 Aug 2009 14:57:38 +0000 (14:57 +0000)
committernyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Thu, 27 Aug 2009 14:57:38 +0000 (14:57 +0000)
不足関数の追加

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit@284 7cac0a50-4618-4814-88d0-24b83990f816

trunk/src/jp/nyatla/nyartoolkit/core/rasterfilter/rgb2bin/NyARRasterFilter_ARToolkitThreshold.java

index fab4534..6c109f7 100644 (file)
@@ -263,7 +263,72 @@ public class NyARRasterFilter_ARToolkitThreshold implements INyARRasterFilter_Rg
                                xy--;\r
                        }                       \r
                }               \r
+       }\r
+       \r
+       class doThFilterImpl_BUFFERFORMAT_WORD1D_R5G6B5_16LE implements IdoThFilterImpl\r
+       {\r
+               public void doThFilter(INyARBufferReader i_input, INyARBufferReader i_output,NyARIntSize i_size,int i_threshold)\r
+               {\r
+                       int[] out_buf = (int[]) i_output.getBuffer();\r
+                       short[] in_buf = (short[]) i_input.getBuffer();\r
+                       \r
+                       final int th=i_threshold*3;\r
+                       int w;\r
+                       int xy;\r
+                       final int pix_count   =i_size.h*i_size.w;\r
+                       final int pix_mod_part=pix_count-(pix_count%8);\r
+\r
+                       for(xy=pix_count-1;xy>=pix_mod_part;xy--){                              \r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                       }\r
+                       //タイリング\r
+                       for (;xy>=0;) {\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                w =(int)in_buf[xy];\r
+                w = ((w & 0xf800) >> 8) + ((w & 0x07e0) >> 3) + ((w & 0x001f) << 3);\r
+                out_buf[xy] = w <= th ? 0 : 1;\r
+                               xy--;\r
+                       }\r
+               }               \r
        }       \r
+       \r
+       \r
+       \r
+       \r
+\r
+       \r
+       \r
+       \r
+       \r
        private int _threshold;\r
        private IdoThFilterImpl _do_threshold_impl;\r
 \r
@@ -284,7 +349,9 @@ public class NyARRasterFilter_ARToolkitThreshold implements INyARRasterFilter_Rg
                case INyARBufferReader.BUFFERFORMAT_INT1D_X8R8G8B8_32:\r
                        this._do_threshold_impl=new doThFilterImpl_BUFFERFORMAT_INT1D_X8R8G8B8_32();\r
                        break;\r
-                       \r
+               case INyARBufferReader.BUFFERFORMAT_WORD1D_R5G6B5_16LE:\r
+                       this._do_threshold_impl=new doThFilterImpl_BUFFERFORMAT_WORD1D_R5G6B5_16LE();\r
+                       break;\r
                default:\r
                        throw new NyARException();\r
                }\r