計(jì)算機(jī)入門課Stanford CS101-week3

Image Logic

If-statement 是用來評判一個陳述是否屬實(shí)的函數(shù),如果屬實(shí)則進(jìn)入下一步程序。這個函數(shù)用在圖像變化上,可以提高改變顏色轉(zhuǎn)化的精確度。如果想要把一張圖中?所有偏紅的顏色?改成藍(lán)色,上節(jié)課的做法是直接找出r值大于某個數(shù)的pixel,把它改成藍(lán)色。這個做法有個問題就是有些pixel,它不僅r值高,g/b值也高,所以它顯示的不一定是偏紅的顏色,有可能只是總體亮度較高的偏藍(lán)的顏色。這里 if statement和average結(jié)合,就可以用來篩選掉一批總體亮度較高且偏藍(lán)偏綠的pixels,留下那些視覺上偏紅色的pixel.

if (pixel.getRed() > avg * 1.1){

...

}

This function can detect the pixel by color.


Image Bluescreen

繼續(xù)搞事!有if statement提高顏色選擇準(zhǔn)確率作為基礎(chǔ),該老師現(xiàn)在要把另外一張圖片上的圖案移動到選擇出來的顏色上,當(dāng)然是同相同坐標(biāo)(位置)上的圖案。實(shí)現(xiàn)方法:1. 先獲得選擇出來的顏色塊的坐標(biāo)(x,y);2. 對第二張圖片的像素點(diǎn)命名,如pixel2; 3.獲取相同(x,y)的rgb值,轉(zhuǎn)給選擇出來的顏色塊。

step1:?

x=pixel.getX( );

y=pixel.getY( );

step2:?

(這里有一個猜測:圖像-像素-rgb值/xy值,存在逐級遞減關(guān)系,如果要對某一層進(jìn)行操作,語法必須是 上一層.get這一層( ). )

pixel2=back.getPixel(x,y)

step3:

pixel.setRed(pixel2.getRed());

pixel.setGreen(pixel2.getGreen());

pixel.setBlue(pixel2.getBlue());


條件:個人感覺以上兩個section要讓結(jié)果自然的話,進(jìn)行操作的顏色塊必須和周圍顏色相差較大,比如說是一塊明顯的藍(lán)色,不然容易選到圖像的其他部分。另外如果要blue screen effect的話,第二張圖像需要有大面積相同的圖案,不然截過去只有一部分的話就會顯得怪怪的。


Computer Hardware

突然進(jìn)入硬件部分。

Moore's Law: Transistor 的加工技術(shù)進(jìn)步速度為每一年,一個同樣體積的芯片的transistor容量加倍。這意味芯片功能更強(qiáng)大以及其價(jià)格更便宜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容