發表文章

目前顯示的是 9月, 2012的文章

樂高像素拼圖之照片像素化教學

圖片
有時候覺得自己桌子太曠,跟工業設計那些人比起來,跟沙漠沒甚麼兩樣。正逢最近流行樂高,弄個樂高像素拼圖點綴一下桌面也不錯。(其實本來是要做鬼塚英吉的,但是後來沒存檔又不小心關掉PS,又不想要同樣的事情做兩次,所以後來選了格瓦拉) -------------------------以下是照片像素化的教學分隔線------------------------- 為了將一張圖片做成樂高像素拼圖,需要一些方法將照片像素化。 樂高的底板最大的大小為48x48顆粒的正方形,實體大小可以參考上面的照片,其實還蠻大張的。可以搜尋"lego 628"找到這一塊底板的資訊。當然,如果不需要這麼大或是需要更大的話,可以選擇比較小的或是併板。 選照片的原則必須以"顏色簡單"、"構圖簡單"為原則。因為樂高的顏色有限,所以不建議找顏色太過豐富的圖案;並且48x48顆粒的板子實體就已經那麼大了,構圖太複雜的圖片很難塞進48x48的大小。因此簡單的卡通圖片就很適合拿來改成像素畫。 這一張是在網路上找到的皮卡丘。皮卡丘,就是你了! Step1: 48x48的比例為正方形,這張圖不是正方形,所以需要裁切成正方形 Step2: 濾鏡\風格化\尋找邊緣 Step3: 影像\調整\去除飽和度 Step4: 影像\影像尺寸,將寬度與高度設為48x48像素。 Step5: 然後照片就會變得非常小,要放很大檢視,以像素的尺度來看圖。 Step6: 影像\調整\色階,將輸入色階暗部調到190。這個步驟的目的是要讓輪廓明顯,所以需要看情況調整。 Step7: 影像\調整\色調分離。色階調到2,也就是黑白。 Step8: 接下來就靠自己的感覺修圖。選擇鉛筆工具,筆頭大小調成1,用黑色與白色慢慢修到自己滿意為止。(不會太麻煩,我才修不到10分鐘) Step9: 再來就是用油漆桶工具上色,這裡用到四種顏色。(這之間我有把臉部紅色部分的輪廓也用鉛筆工具改成紅色) Step10: 最後再用鉛筆工具加上一點裝飾,完成。是不是很簡單呢。 Step11: 想辦法買到底板,

關於後製影像品質 - 漸層的處理

圖片
自己一直有在玩影像處理,並且時常將拍攝過後的照片做後製的動作。不過最近針對一直存在的問題越來越覺得不可以忽略,他就是"漸層"。通常一張照片如果是都市或是人物的部分,漸層在整張圖所佔的比例有限,所以後製的過程中比較難察覺到後製所帶來的失真。但是如果照片是風景照,漸層的比例就會偏高,如果這個時候又要加上一些特效,整體的品質就會大幅下滑,到最後存成jpeg的時候,對一些比較挑的人來說,幾乎是不能看。 後來做了一些小研究的結果,如果照片要後製的話,最好先把照片轉成16位元的格式後製,不然就是從raw檔匯出的過程,不要降成8位元,直接以16位元匯出。等到一切處理好之後再轉成8位元格式。至於為什麼最後要轉成8位元的原因是,目前的電腦系統螢幕顏色深度都是24位元,也就是RGB各佔8位元。16位元的數位檔案代表著使用者需要48位元深度的螢幕才有辦法呈現,不過相信目前沒有人看過48位元的螢幕。 以下以一張黑白的漸層做例子: Step1: 先將這一張圖片轉成16位元模式,或者從raw檔轉匯出來不要降成8位元。 Step2: 做想要做的候製。 Step3: 轉成8位元。 Step4: 存檔。 以下是我依照以上的步驟存的檔案: 如果不經過Step1與Step3的轉換直接後製,結果將會如下(上下兩張圖片可以下載做比對):

Temperature logger

圖片
紀錄了七個多小時我在公司座位的溫度,看起來的確是蠻冷的。 這個溫度感測紀錄也是用Cypress PSoC弄的。之前搞定了 行動電源 與 縮時攝影快門 後,想說要做點純數位的東西,練習MCU的數位介面溝通。不過其實都已經模組化了,充其量只能說是應用,沒有寫到底層協議部分。 為了要將溫度的資料可以記錄在電腦上,需要有可以跟電腦溝通的介面,PSoC1最基礎的介面就是UART,不過這只需要單方向從MCU丟資料到電腦,所以選用比較簡單的TX模組即可,還可以省掉一根RX腳位。 再來就是MCU與溫度感測器的溝通,這個是用Ti的溫度感測器,i2c介面。介面膜組的使用很方便,application note寫得清清楚楚了。 不過之中遇到了一些問題,後來才知道是這顆MCU的flash space不夠用(4k byte),導致本來想要印含有小數點的溫度資訊,只能先丟16進制的資料出來,在把log出來的資料丟給excel使用hex2dec轉成溫度。 為什麼4k byte不夠用? 為了完成以上的工作,需要用到的MCU user module有: UART_TX8, I2C_HW, counter8(for uart baud rate generation), sleep_timer(for delay),還有一些標準函式庫的資料,例如ftoa(將浮點數轉成字元,為了要印在UART_TX上),ftoa用了大概1.6k的flash空間,上網找解決辦法有人說可以用csprintf...後來發現這個吃更多2.5k左右。不過還是很感謝上網問人馬上解答才能讓我知道真正的原因在哪裡,在這裡也覺得Cypress服務做的真是不錯。最後附上連結是我上網問問題的網頁,並且有FAE順便將他過去如何減少code space的經驗寫進去,服務真好!  http://www.psocdeveloper.com/forums/viewtopic.php?f=3&t=9139