Re: [問題] 關於灰階影像處理..
※ 引述《Pistachi.bbs@mobbs.stut.edu.tw ()》之銘言:
: 提供一個方法 很久以前寫的
: 變數的命名實在是...自已都要看不懂嚕
: 總之把這當黑盒子用就好..
: 不要管裡面寫什麼了XD
: BufferedImage -> double[][]
: -----------------------------------------------------
: double[][] transfer(BufferedImage img){
: int w=img.getWidth();
: int h=img.getHeight();
: int X3_1=0;
: int X3_2=0;
: double[][] temp = new double[h][w*3];
: double[] a=img.getRaster().getPixels(0, 0, w, h, a);
: for(int j=0;j<h;j++){
: for(int i=0;i<w;i++){
: X3_1=(j*w+i)*3;
: X3_2=i*3;
: temp[j][X3_2]=a[X3_1];
: temp[j][X3_2+1]=a[X3_1+1];
: temp[j][X3_2+2]=a[X3_1+2];
: }
: }
: return temp;
: }
: m*[1;37;40m-----------------------------------------------------*[m*[mm
: m*[1;37;40m-----------------------------------------------------*[m*[mm
: 轉灰階
: void doGray(double[][] da,int x ,int y,int w,int h){
: int X3=0;
: int gray=0;
: for(int j=y;j<h;j++){
: for(int i=x;i<w;i++){
: X3=i*3;
: gray=(int)(0.299*da[j][X3]+0.587*da[j][X3+1]+0.114*da[j][X3+2]);
: da[j][X3]=da[j][X3+1]=da[j][X3+2]=gray;
: }
: }
: }
: m*[1;37;40m-----------------------------------------------------*[m*[mm
: ※ devlish.bbs@ptt.cc (灰色地帶) wrote:
: > 小弟最近要寫一個影像處理的程式,目前的進度卡在要將圖片轉為灰階陣列顯示出來
: > 目前我已經能夠抓到圖片的Pixel值了,想請問是否有能夠用灰階的方式將抓到的值
: > 表達並顯示出來?
: > 可以順便問一下,我目前抓到的值是以一維的方式顯示出來的,但我還不懂如何將一維
: > 轉為二維,是否可以指點一下迷津?
: > public static void main(String[] args) throws Exception {
: > JFrame window = new JFrame("圖片");
: > window.setSize(700,700);
: > window.setLocation(50,50);
: > Container c = window.getContentPane();
: > new DemoImages();
: > Image image = DemoImages.getImage("4.jpg",window);
: > ImagePanel ip = new ImagePanel();
: > ip.setImage(image);
: > c.add(ip);
: > window.setVisible(true);
: > PixelGrabber pixel = new PixelGrabber(image,0,0,image.getWidth(null),image.getHeight(null),false);
: > pixel.startGrabbing();
: > while(!pixel.grabPixels()) {
: > }
: > 以上是程式碼...請哪個好心人告訴我一下吧,目前Error一大堆,接近崩潰邊緣>"<..
請問,如果以用BufferImage來做處理為概念,要將小弟所寫的上面的程式碼繼續往下寫
先將Load的圖片轉為灰階,然後再將其中的影像轉為二維的灰階陣列,並且將結果與原先
的圖片一同顯示於兩個不同的window,也就是說,除了原先顯示的圖片之外,還要多顯示
一個處理過的灰階影像圖片(已抓到Pixel值的)
小弟在書上看到一個Utilities的方法,但試下來的結果就只有
image=Utilities.makeBufferedImage(image);
這一條成功而已,而且原先會顯示的Pixel值也不再顯示了.......= "=
上面的敘述有點亂,可能因為我的腦袋也是一團亂....
想請教,以這樣的敘述下來,有什麼好的方法可以呈現出來....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.211.243
討論串 (同標題文章)