Unfair的故事就如同名字所描述的,在探討這世界上Unfair的事情,究竟什麼是對的?什麼是錯的?普世價值觀所認定的對錯就代表絕對的對錯嗎?這齣戲在日劇板的評價相當高,但是我卻不想說太多,這齣戲想要探討的東西的確相當有意思,但是劇情實在讓我覺得很差,簡直就像是日劇版本的霸刀一般,主角身邊的人紛紛背叛她,莫名奇妙地為了劇情而變化做出傷害主角雪平的事情,編劇的伏筆有埋在劇情哩,可是卻沒有埋在演員的演技裡,故事裡也有不少讓人無法信服的橋段。
唯一比較值得一提的是,筱原涼子的演技還是讓我覺得很佩服,也很適合這個腳色,上次在Anego裡面演的是上班族大姐,這次在Unfair飾演裡面的是帥氣的刑警大姐和關心女兒的母親這樣具有雙重特質的腳色,她的戲劇演出應該已經被定位在這種大姐型的位置了吧(畢竟也33歲了),這樣也很好,她的氣質真的很適合。
2006年4月21日 星期五
2006年4月16日 星期日
終於考完了
考完了,我今年的研究所考試都考完了,結果也大致出爐了,接下來就是決定要重考或是當兵了。我對這樣的結果有些許的意外,但是並不感到有什麼難過,畢竟一分耕耘一分收穫是小學就教過的道理,付出的努力不夠也沒有什麼好說的。
雖然我一點都不想要當兵,但是目前看來當兵似乎是最好的選擇,一來可以消磨掉女友去日本交換的一年,二來早點解決這個煩人的問題也是很好的,三來今天看到了關於產業研發碩士專班的消息,本來打死不想當兵的我,竟然也有些意動了,不過還是再好好想想看吧,這麼重要的事情不能隨便決定。
為什麼我們要去當兵呢?保家衛國這種理由我實在不能接受,算了,平常的抱怨已經夠多了,我也不想寫在這裡污染版面。
雖然我一點都不想要當兵,但是目前看來當兵似乎是最好的選擇,一來可以消磨掉女友去日本交換的一年,二來早點解決這個煩人的問題也是很好的,三來今天看到了關於產業研發碩士專班的消息,本來打死不想當兵的我,竟然也有些意動了,不過還是再好好想想看吧,這麼重要的事情不能隨便決定。
為什麼我們要去當兵呢?保家衛國這種理由我實在不能接受,算了,平常的抱怨已經夠多了,我也不想寫在這裡污染版面。
2005年10月23日 星期日
[Java] Retrieve pixel values from image
用來抓單一個點的pixel value
int BufferedImage.getRGB(int x, int y)
用來抓一個區域的pixel value
int [] BufferedImage.getRGB(int startX, int startY, int w, int h,
int[] rgbArray, int offset, int scansize)
sample code:
Note:
1. 使用BufferedImage.getRGB(int x, int y)讀進來的是pixel value,並不能
直接使用,還要透過下面補充的函數[1]才可以得到RGB value。
2. 影像中的座標值剛好與記憶體中Array存放的位置為transpose,需特別注意。
補充:
1. 將使用BufferedImage.getRGB(int x, int y)讀進來的pixel value轉成RGB值
2. 將RGB value轉成BufferedImage中儲存的pixel value
可以用 void BufferedImage.setRGB(int x, int y, int RGB) 設定RGB值
int BufferedImage.getRGB(int x, int y)
用來抓一個區域的pixel value
int [] BufferedImage.getRGB(int startX, int startY, int w, int h,
int[] rgbArray, int offset, int scansize)
sample code:
import java.awt.image;
import javax.imageio;
BufferedImage source = ImageIO.read(inputfile);
int imageWidth = source.getWidth();
int imageHeight = source.getHeight();
int [][] pixelValue = new int[height][width];
for(int i = 0; i < pixelValue.length; i++) {
for(int j = 0; j < pixelValue[i].length; j++) {
pixelValue[i][j] = source.getRGB(j, i);
}
}
Note:
1. 使用BufferedImage.getRGB(int x, int y)讀進來的是pixel value,並不能
直接使用,還要透過下面補充的函數[1]才可以得到RGB value。
2. 影像中的座標值剛好與記憶體中Array存放的位置為transpose,需特別注意。
補充:
1. 將使用BufferedImage.getRGB(int x, int y)讀進來的pixel value轉成RGB值
private int[] getRGBFromPixel(int pixelvalue) {
int[] RGB = new int[4];
/* alpha value denotes the transparent level of pixel */
int alpha = (pixelvalue >> 24) & 0xff;
int red = (pixelvalue >> 16) & 0xff;
int green = (pixelvalue >> 8 ) & 0xff;
int blue = pixelvalue & 0xff;
RGB[0] = alpha;
RGB[1] = red;
RGB[2] = green;
RGB[3] = blue;
return RGB;
}
2. 將RGB value轉成BufferedImage中儲存的pixel value
private int returnToRGB(int R, int G, int B) {
int RGB = 0x00000000;
/* process alpha value */
int alpha = (0xff << 24);
/* process Red value */
int Red = (R & 0xff) << 16;
/* process Green value */
int Green = (G & 0xff) << 8;
/* process Blue value */
int Blue = (B & 0xff);
RGB = alpha | Red | Green | Blue;
return RGB;
}
可以用 void BufferedImage.setRGB(int x, int y, int RGB) 設定RGB值
2005年10月12日 星期三
[java] Convert Color Image To Gray Level Image
import java.awt.color.*;
import java.awt.image.*;
import java.imageio.*;
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
try {
BufferedImage colorImage =
ImageIO.read(new File("C:\\MATLAB701\\work\\1100608946.jpg"));
BufferedImage grayImage = op.filter(colorImage, null);
JFrame grayjf = new JFrame();
grayjf.getContentPane().add(new JButton(new ImageIcon(grayImage)));
grayjf.setSize(colorImage.getWidth(), colorImage.getHeight());
grayjf.setVisible(true);
}catch(Exception e) {
System.out.println("Error on reading color image");
}
2005年9月25日 星期日
創意工場 MIT

Pepper White的這本創意工場MIT(原名 The Idea Factory: Learning to Think at MIT),好像是一本很有名的書呢,不過我是在書店看到才知道有這本書的,花了不短的時間才把它看完,因為作者是機械研究所的,領域和我實在差得太遠,所以書裡面有很多專業的描述其實我看不太懂,不過翻譯的吳程遠先生翻得不錯,起碼算得上通順,而且也把專有名詞翻譯得頗為正確,比起"藍色駭客"的譯者好多了。
這本書主要在探討幾個問題:第一,在MIT唸書的滋味如何?第二,到底怎麼"學習思考"?第三,機械式思考的限制何在?在MIT唸書的滋味,書裡已經描述地很詳盡,而且也很殘忍了(雖然還有人認為描述不夠殘忍),想要逼出一個人的潛能和極限,這樣的訓練是必要的,對於每一件事情都能夠由最底層開始,有最深入的了解,這才是做科學研究的方法,作者在書中提到,他剛進入MIT的時候,跑去問Gyftopoulos(翟夫妥普羅斯)教授關於熱力學的問題,但是卻被教授反問了一連串底層的細節,White支支晤晤地答不出來,遭到教授的嚴厲指責:"很明顯你還沒準備好參加這樣的討論,我是個大忙人,而如果你還沒有準備好,沒有把你的問題整理好,請再不要踏進這裡來"。這樣嚴格且認真的教學態度影響了他們所教育的學生,也改變了他們做事與唸書的態度。而我呢?做得到嗎?每次問問題之前,都有好好地努力過,把所有的細節和觀念釐清,確定沒有辦法靠自己解決的時候才求助於老師嗎?我想,在這方面,我也還差得很遠,起碼比當時White的境界還要不如許多。
2005年9月13日 星期二
[Java] Read RGB values from raw image file
import java.io.*;
public class ReadRawImage {
private byte[] all;
/*
* Channel[0] for red channel, Channel[1] for green channel, Channel[2]
* for blue channel
*/
private int[][][] Channel;
private FileInputStream stream = null;
public ReadRawImage(File raw_image, int width, int height) {
try {
/* Read the raw image file into memory */
stream = new FileInputStream(raw_image);
all = new byte[width * height * 3];
Channel = new int[3][][];
stream.read(all);
/* dispatch pixel values to each array of channel */
ByteArrayInputStream bytestream = new ByteArrayInputStream(all);
byte [] temp = new byte[width * height];
bytestream.read(temp, 0, width * height);
Channel[0] = new int[height][width];
for(int i = 0; i < width * height; i++) {
/*
* extends the byte value to integer value by
* performing the "and" operation with 0x000000ff
*/
Channel[0][i / width][i%width] = temp[i] & 0x000000ff;
}
bytestream.read(temp, 0, width * height);
Channel[1] = new int[height][width];
for(int i = 0; i < width * height; i++) {
Channel[1][i / width][i%width] = temp[i] & 0x000000ff;
}
bytestream.read(temp, 0, width * height);
Channel[2] = new int[height][width];
for(int i = 0; i < width * height; i++) {
Channel[2][i / width][i%width] = temp[i] & 0x000000ff;
}
}catch(Exception e) {
e.printStackTrace();
}
}
public int[][][] getRGBValue() {
return Channel;
}
}
訂閱:
文章 (Atom)