Re: [問題] 關於灰階影像處理..
提供一個方法 很久以前寫的
變數的命名實在是...自已都要看不懂嚕
總之把這當黑盒子用就好..
不要管裡面寫什麼了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一大堆,接近崩潰邊緣>"<..
--
だれかとだれかつなぐ
赤い糸
--
◣ ███ ███ ☆ Post by Pistachi
◢█ ▉▉█ █▇█ ★ From 220-134-160-28.HINET-IP.hinet.net
◥█◤ ﹉ ﹍ ﹋ 月光海洋BBS 《mobbs.stut.edu.tw》 163.26.220.130
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 4 之 12 篇):