Hello,
This is a small exercice of Multimedia class (INE5431). We need to implement:
1) Transform the image to GrayScale
2) Generate one image to each component color (R/G/B)
3) Transform the GrayScale image to binary
To transform RGB to GrayScale we need to use this expression:
Y = 0.3R + 0.59G + 0.11B;
And them, to convert the GrayScale to Binary
if (Y > 127) {b = 1; } else { b = 0; }
If we want just one color component, we need to get all image pixels and leave just the component that we want, or just copy the component to a new image.
In this project, we access an image and we have some functions to do what we want, convertion to GrayScale, Binary, and Component RGB. From the source image, we create a buffer image of the same size to all images and we create a for to go over all pixels and make the transformation and put it to the new buffer image.
GrayScale method, receive a Bufferedmage and convert it to GrayScale.
[code lang=”java”]
public static BufferedImage criaImagemCinza(BufferedImage imgJPEG) {
// Create a new buffer to BYTE_GRAY
BufferedImage img = new BufferedImage(imgJPEG.getWidth(), imgJPEG.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
WritableRaster raster = img.getRaster();
WritableRaster rasterJPEG = imgJPEG.getRaster();
// Foreach pixel we transofrm it to Gray Scale and put it on the same image
for(int h=0;h<256;h++)
for(int w=0;w<256;w++) {
int[] p = new int[4];
rasterJPEG.getPixel(w, h, p);
p[0] = (int) (0.3 * p[0]);
p[1] = (int) (0.59 * p[1]);
p[2] = (int) (0.11 * p[2]);
int y = p[0] + p[1] + p[2];
raster.setSample(w,h,0,y);
}
return img;
}
[/code]
Binary Image method, receive a Bufferedmage and convert it to Binary.
[code lang="java"]
public static BufferedImage criaImagemBinaria(BufferedImage imgJPEG) {
// Create a new Binary Buffer
BufferedImage img = new BufferedImage(imgJPEG.getWidth(), imgJPEG.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
WritableRaster raster = img.getRaster();
WritableRaster rasterPB = criaImagemCinza(imgJPEG).getRaster();
// Foreach pixel check if the new one must be white or black
for(int h=0;h<256;h++)
for(int w=0;w<256;w++) {
int[] p = new int[1];
rasterPB.getPixel(w, h, p);
if(p[0] > 127) {
raster.setSample(w, h, 0, 1);
} else {
raster.setSample(w, h, 0, 0);
}
}
return img;
}
[/code]
RGB Image method, receive a Bufferedmage and a Type (0 – red, 1 – green, 2 – blue) and convert it to RGB Component that is used as parameter.
[code lang=”java”]
public static BufferedImage criaImagemRGB(BufferedImage imgJPEG, int tipo) {
// Create a new RGB Buffer
BufferedImage img = new BufferedImage(imgJPEG.getWidth(), imgJPEG.getHeight(), BufferedImage.TYPE_INT_RGB);
WritableRaster rasterT = img.getRaster();
WritableRaster raster = imgJPEG.getRaster();
// Foreach pixel just use the component that is passed as parameter.
for(int h=0;h<256;h++)
for(int w=0;w<256;w++) {
int[] p = new int[4];
raster.getPixel(w,h,p);
rasterT.setSample(w,h,tipo-1,p[tipo-1]);
}
return img;
}
[/code]
Manipulate images to GrayScale, Binary and RGB Components
Matheus
يخضع النظام لرقابة ترخيص رسمي يحفظ حقوق المستخدم ويؤمّن بياناته المالية.
تتجاوز مكتبة الكازينو 7000 لعبة تشمل السلوت والطاولات من مزودين مثل Play’n GO و Evolution.
يمكن الرهان على مباريات الدوري المصري إلى جانب كبرى البطولات الأوروبية والعالمية.
يكافئ نظام الولاء اللاعبين النشطين بنقاط قابلة للتحويل ومزايا حصرية في المستويات العليا.
تتنوع خيارات الدفع بين البطاقات البنكية والمحافظ الإلكترونية والكريبتو بحد أدنى منخفض.
888starz 888starz.