Image Logic
If-statement 是用来评判一个陈述是否属实的函数,如果属实则进入下一步程序。这个函数用在图像变化上,可以提高改变颜色转化的精确度。如果想要把一张图中 所有偏红的颜色 改成蓝色,上节课的做法是直接找出r值大于某个数的pixel,把它改成蓝色。这个做法有个问题就是有些pixel,它不仅r值高,g/b值也高,所以它显示的不一定是偏红的颜色,有可能只是总体亮度较高的偏蓝的颜色。这里 if statement和average结合,就可以用来筛选掉一批总体亮度较高且偏蓝偏绿的pixels,留下那些视觉上偏红色的pixel.
if (pixel.getRed() > avg * 1.1){
...
}
This function can detect the pixel by color.
Image Bluescreen
继续搞事!有if statement提高颜色选择准确率作为基础,该老师现在要把另外一张图片上的图案移动到选择出来的颜色上,当然是同相同坐标(位置)上的图案。实现方法:1. 先获得选择出来的颜色块的坐标(x,y);2. 对第二张图片的像素点命名,如pixel2; 3.获取相同(x,y)的rgb值,转给选择出来的颜色块。
step1:
x=pixel.getX( );
y=pixel.getY( );
step2:
(这里有一个猜测:图像-像素-rgb值/xy值,存在逐级递减关系,如果要对某一层进行操作,语法必须是 上一层.get这一层( ). )
pixel2=back.getPixel(x,y)
step3:
pixel.setRed(pixel2.getRed());
pixel.setGreen(pixel2.getGreen());
pixel.setBlue(pixel2.getBlue());
条件:个人感觉以上两个section要让结果自然的话,进行操作的颜色块必须和周围颜色相差较大,比如说是一块明显的蓝色,不然容易选到图像的其他部分。另外如果要blue screen effect的话,第二张图像需要有大面积相同的图案,不然截过去只有一部分的话就会显得怪怪的。
Computer Hardware
突然进入硬件部分。
Moore's Law: Transistor 的加工技术进步速度为每一年,一个同样体积的芯片的transistor容量加倍。这意味芯片功能更强大以及其价格更便宜。