imagejで16x16の長方形のテーブルを描く方法は?

Atrh

私がやろうとしているのは、ルックアップテーブルのような色で満たされた16×16の長方形の色で新しい画像を作成することです。

私はJavaとImageJに不慣れで、これが今の私の進歩です。ピクセルごとに1色しか表示されません。色ごとに5x5ピクセルを表示するように変更したいと思います。どうすればそれを達成できますか。

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.util.*;
import java.awt.*;
import ij.plugin.filter.*;
import ij.process.*;
import java.lang.Math.*;
import java.awt.image.IndexColorModel;


public class colortable_plugin implements PlugInFilter {

    public int setup(String arg, ImagePlus im) {
        return DOES_8C; // this plugin works on indexed color images
        }

    public void run(ImageProcessor ip) {

        IndexColorModel icm = (IndexColorModel) ip.getColorModel();             
        int pixBits = icm.getPixelSize();
        int mapSize = icm.getMapSize();

        //retrieve the current lookup tables (maps) for R,G,B
        byte[] Rmap = new byte[mapSize]; icm.getReds(Rmap);
        byte[] Gmap = new byte[mapSize]; icm.getGreens(Gmap);
        byte[] Bmap = new byte[mapSize]; icm.getBlues(Bmap);

        int[]   RGB = new int[3];
        int[][] allRGB = new int[256][3];
        //put color in rectangle
        for (int idx = 0; idx < mapSize; idx++){    
                int r = 0xff & Rmap[idx]; //mask to treat as unsigned byte
                int g = 0xff & Gmap[idx];
                int b = 0xff & Bmap[idx];
                RGB[0] = r;
                RGB[1] = g;
                RGB[2] = b;

                //save all RGB as array
                for(int k=0;k<3;k++){
                    allRGB[idx][k]= RGB[k];
                }                               
        }       
        tbl(allRGB);


  }

     private void tbl(int[][] allRGB){

        ImageProcessor newip =new ColorProcessor(256,256);
        int count = 0 ;
        for(int i=0;i<16;i++){
            for(int j=0;j<16;j++){              
                newip.putPixel(i,j,allRGB[count]);count++;
            }
        }                           
        ImagePlus cwin = new ImagePlus("TBL", newip);
        cwin.show();          
  }

}
ジャン・エグリンガー

最初に16x16ピクセルのImageProcessorを作成するのはどうですか

ImageProcessor newip =new ColorProcessor(16,16);

最後にImagePlusをスケーリングします。

IJ.run(cwin, "Size...", "width=256 height=256 constrain interpolation=None");

これらの変更を加えた完全なコードは次のとおりです。

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.util.*;
import java.awt.*;
import ij.plugin.filter.*;
import ij.process.*;
import java.lang.Math.*;
import java.awt.image.IndexColorModel;


public class colortable_plugin implements PlugInFilter {

    public int setup(String arg, ImagePlus im) {
        return DOES_8C; // this plugin works on indexed color images
        }

    public void run(ImageProcessor ip) {

        IndexColorModel icm = (IndexColorModel) ip.getColorModel();             
        int pixBits = icm.getPixelSize();
        int mapSize = icm.getMapSize();

        //retrieve the current lookup tables (maps) for R,G,B
        byte[] Rmap = new byte[mapSize]; icm.getReds(Rmap);
        byte[] Gmap = new byte[mapSize]; icm.getGreens(Gmap);
        byte[] Bmap = new byte[mapSize]; icm.getBlues(Bmap);

        int[]   RGB = new int[3];
        int[][] allRGB = new int[256][3];
        //put color in rectangle
        for (int idx = 0; idx < mapSize; idx++){    
            int r = 0xff & Rmap[idx]; //mask to treat as unsigned byte
            int g = 0xff & Gmap[idx];
            int b = 0xff & Bmap[idx];
            RGB[0] = r;
            RGB[1] = g;
            RGB[2] = b;

            //save all RGB as array
            for(int k=0;k<3;k++){
                allRGB[idx][k]= RGB[k];
            }                               
        }       
        tbl(allRGB);


    }

    private void tbl(int[][] allRGB){

        ImageProcessor newip =new ColorProcessor(16,16);
        int count = 0 ;
        for(int i=0;i<16;i++){
            for(int j=0;j<16;j++){              
                newip.putPixel(i,j,allRGB[count]);count++;
            }
        }                           
        ImagePlus cwin = new ImagePlus("TBL", newip);
        IJ.run(cwin, "Size...", "width=256 height=256 constrain interpolation=None");
        cwin.show();          
    }

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

長方形の半円をフラッターで描く方法は?

分類Dev

Javaでマウスカーソルの周りに長方形を描く方法は?

分類Dev

Matlabで多くの長方形を描く方法は?

分類Dev

opencvのArucoマーカーに長方形を描く方法は?

分類Dev

Xamarin.iOSで角の丸い長方形を描く方法は?

分類Dev

SWIFTでカスタムの角丸長方形を描く方法は?

分類Dev

Javaでカスタムの角丸長方形を描く方法は?

分類Dev

Javaで矢印の付いた長方形を描く方法は?

分類Dev

xmlドローアブルアンドロイドで長方形の内側の内側の端の三角形の形を描く方法は?

分類Dev

反応ネイティブで衣装の数の正方形を描く方法は?

分類Dev

Kotlinで長方形を描く方法は?

分類Dev

グーグル関数で円や長方形のようなグラフィックオブジェクトを描く方法は?

分類Dev

iOSで半透明の長方形を描く

分類Dev

長方形の中に長方形を描く

分類Dev

点のセットの上に長方形を描く方法は?

分類Dev

4つの座標を使用して長方形を描く方法は?

分類Dev

画像上にマウスで複数の長方形を描く方法は?

分類Dev

MFC-長方形の中にピクセル波を描く方法

分類Dev

半円形の長方形を描く方法は?

分類Dev

顔の位置に長方形を描く方法は?

分類Dev

React NativeARTで角の丸い長方形を描く方法

分類Dev

Pythonで画面に空の長方形を描く方法

分類Dev

CSSで片側に長方形の中心線を描く方法

分類Dev

デンドグラムでグループ化されたクラスターの周りに色付きの長方形を描く方法は?

分類Dev

長方形形状の5x5のテーブルを追加する方法

分類Dev

長方形の形状をテーブルセルの境界線に揃える方法は?

分類Dev

xamarin.macで長方形を描く方法

分類Dev

ReactNativeで画像に長方形を描く方法

分類Dev

android -- 円で長方形を描く方法

Related 関連記事

  1. 1

    長方形の半円をフラッターで描く方法は?

  2. 2

    Javaでマウスカーソルの周りに長方形を描く方法は?

  3. 3

    Matlabで多くの長方形を描く方法は?

  4. 4

    opencvのArucoマーカーに長方形を描く方法は?

  5. 5

    Xamarin.iOSで角の丸い長方形を描く方法は?

  6. 6

    SWIFTでカスタムの角丸長方形を描く方法は?

  7. 7

    Javaでカスタムの角丸長方形を描く方法は?

  8. 8

    Javaで矢印の付いた長方形を描く方法は?

  9. 9

    xmlドローアブルアンドロイドで長方形の内側の内側の端の三角形の形を描く方法は?

  10. 10

    反応ネイティブで衣装の数の正方形を描く方法は?

  11. 11

    Kotlinで長方形を描く方法は?

  12. 12

    グーグル関数で円や長方形のようなグラフィックオブジェクトを描く方法は?

  13. 13

    iOSで半透明の長方形を描く

  14. 14

    長方形の中に長方形を描く

  15. 15

    点のセットの上に長方形を描く方法は?

  16. 16

    4つの座標を使用して長方形を描く方法は?

  17. 17

    画像上にマウスで複数の長方形を描く方法は?

  18. 18

    MFC-長方形の中にピクセル波を描く方法

  19. 19

    半円形の長方形を描く方法は?

  20. 20

    顔の位置に長方形を描く方法は?

  21. 21

    React NativeARTで角の丸い長方形を描く方法

  22. 22

    Pythonで画面に空の長方形を描く方法

  23. 23

    CSSで片側に長方形の中心線を描く方法

  24. 24

    デンドグラムでグループ化されたクラスターの周りに色付きの長方形を描く方法は?

  25. 25

    長方形形状の5x5のテーブルを追加する方法

  26. 26

    長方形の形状をテーブルセルの境界線に揃える方法は?

  27. 27

    xamarin.macで長方形を描く方法

  28. 28

    ReactNativeで画像に長方形を描く方法

  29. 29

    android -- 円で長方形を描く方法

ホットタグ

アーカイブ