2018年1月14日

3D列印人體器官餅乾模子

如前篇所述,就是偶爾想到就來畫3D列印的餅乾模子,目前已經做了心臟、肝臟、腎臟
檔案下載處:
https://www.thingiverse.com/thing:2756583



這些都是先從手繪稿開始的,這是肝臟加上小小的膽囊




印出來的腎臟也拿來壓土司







心臟的模型原稿在上



用餅乾模子壓了紙黏土之後,再做一些加工,把它變得更像心臟,然後用藍色線把心室、心房、血管接在一起,日後用這模型講解心臟,也許可以更清楚直觀。


3D列印細胞分裂餅乾模子

前幾週,有時間就隨手畫了一些餅乾模子,這個是細胞分裂的
其實這也是參考別人設計的成品,然後自己畫出的

我一開始設計的是底板全封起,後來在朋友建議下,也把底板設計成半開放的,方便壓模時手可以伸進去把麵團或黏土團推出,兩種版本我都放在最上面的檔案下載處,不過我自己印那種半開放的時候,實在印得不順利。





這是拿來壓紙黏土的









也可以拿來壓土司麵包







用python+OpenCV做「如果鳥飛行留下軌跡」

前幾天看到國家地理的網站有一篇If Birds Left Tracks in the Sky, They’d Look Like This

攝影師用特殊的攝影技巧拍下鳥在空中移動的軌跡

我看著看著就好想也做看看啊,不過怎麼做呢?三年前我用imagej做過類似的事情
《imagej將時間資料視覺化》

當時的作法先用ffmpeg把影片轉成圖片之後,再交給imagej做成stack,然後做z軸的投影。這一次呢,我想要用python一次達成,練習看看怎麼做。

要作到這種軌跡圖,得要用到影片才行,然後我想到幾個月前在pyimagesearch這裡看到這篇Long exposure with OpenCV and Python。我就想應該用這種程式處理成長時間曝光的就可以了吧?結果答案並不是這麼簡單。

「長時間曝光」於是把影片中每幀影格的像素數值做平均,為了方便說明,先假設影片都是灰階的,像素數值是從0-255,某個影片中一共有100幀影格,其中左上角拍攝天空的一個像素,在一幀影格的數值有黑鳥,數值為0,另外99幀影格因為鳥飛過去了,都是拍到天空,數值是255。如果用長時間曝光的方式來做,那麼那個位置的像素數值就會是(0x1+255x99)/100=252。本來我們期待要拍到鳥的地方,結果變成只是稍暗的天空。


所以作法應該是怎樣呢?每幀影格中出現的鳥(像素數值很低的範圍)都應該被保留下來,這樣才能達到留下痕跡的效果。

想著怎麼做的那幾天,剛好看到大愛的節目「發現」有不少鳥飛行的片段,我就用他們的影片寫了程式玩玩,果然這樣的想法可行。

如果使用的影片幀率更高,應該就能做出像最上面文章裡的照片那樣






補充,週末傍晚剛好看到有人在放鴿子,順道拍了五秒影片來做鳥軌跡





執行的程式如下,須安裝opencv

python track.py -v bird.mp4 -o bird.png
------------track.py--------------------------------
# import the necessary packages
import argparse
import cv2
import numpy as np

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-v", "--video", required=True, help="path to input video file")
ap.add_argument("-o", "--output", required=True, help="path to output png")
args = vars(ap.parse_args())

cap = cv2.VideoCapture(args["video"])


width = int(cap.get(3))  # float
height = int(cap.get(4)) # float
resultFrame = np.empty((height,width,3), dtype=np.uint8)
resultFrame.fill(255)

while True:
    boolen, frame = cap.read() # get the frame
    resultFrame = np.minimum(resultFrame,frame)
    cv2.imshow('final',resultFrame)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break
cv2.imwrite(args["output"],resultFrame)
cap.release()
cv2.destroyAllWindows()

2018年1月6日

氯化亞鈷試紙要怎麼乾燥啦

記得第一次教書時,遇到氯化亞鈷試紙的實驗時,一開始要先把它弄乾才能給學生做實驗啊。那時候看到實驗室準備了很多吹風機,喔,原來前輩老師們是用吹風機吹乾它們的。

首先得用鑷子夾好它們,再用吹風機吹它們,這都還好。但如果讓學生用過的試紙(或是分散的試紙)要乾燥,那就有點頭痛了,第一是不容易全部夾好,所以有一次我乾脆放在燒杯裡用吹風機吹,那次很笨,因為吹下去就像仙女散花一樣,滿天都是氯化亞鈷試紙。

後來開始嘗試不同的乾燥方式,像是拿酒精燈的明火來烤,結果就燒掉了,或是拿電磁爐乾燒鍋子幾秒鐘,試紙就放裡頭,然後一不小心也是會燒焦。

終於後來找到方法了,就是用電熱杯墊,擺在上面不用顧著它,也不用擔心會燒過頭,我想應該是最終的解決方案了。





你可能對這有興趣

Related Posts Plugin for WordPress, Blogger...