拖曳冗長的期中

midterm_gui_design

(GUI  design ; 這學期加選物治研究所的MATLAB GUI的期中作業 )

覺得二年級有二年級的痛苦

雖然主科沒有大一的 普生 化原 普物 微積分 計概 那麼多

但大二上的生化真的是有夠多……

聽老師上生化的時候都覺得超級無聊

回家自己抱著lehninger仔細推敲一遍酵素的作用 電子傳遞的過程

其實把一個很複雜的mechanism完全釐清的感覺滿爽的 算是有趣啦 雖然都很抽象

但生化考試真的太密集了 中間幾乎沒有甚麼容許耍廢的空檔

加上三門通識書面報告 口頭報告 輪流轟炸

報告雖然很煩人但基本上寫完的感覺都是愉悅的

像是上面那個GUI的草稿 用powerpoint拉的 超級滿意 哈哈哈

只求期末能呈現出80% QQQ

然後前幾天弄完的歐洲時尚史Dior and I報告也寫得很開心

覺得紀錄片很好看 而且runway show的照片都好賞心悅目(療癒)

真心滿喜歡Raf Simons 而且有更懂high end fashion的感腳~

 

話說現在就是一個該念生化但我在等衣服洗好等等要去晾的偷閒時間

閬仙的第一次glycolysis期中考班平均78 我拿了89.5

雖然看到別人102分還是有點驚嚇QQ 但算是OK

現在要準備下禮拜的respiratory chain跟光合作用…..這次還沒有題庫

我要變成計較GPA的魔人了 所以得拚一點才行

 

然後考完我要逛街!!!!必須逛街!!!!買冬裝!!!!!!!!!!!!

 

然後著手我的matlab期末計畫!還有12月初要跟學長的實驗 非常期待!
考完找一些schizophrenia的書來了解一下 圖書館有一整區都是精神疾病和腦和造影的書 簡直太吸引人 恨不得把所有知識全部塞進腦袋裡面……

廣告

The NIFTI file format

very useful information !!

Brainder.

(This article is about the nifti-1 file format. For an overview of how the nifti-2 differs from the nifti-1, see this one.)

The Neuroimaging Informatics Technology Initiative (nifti) file format was envisioned about a decade ago as a replacement to the then widespread, yet problematic, analyze 7.5 file format. The main problem with the previous format was perhaps the lack of adequate information about orientation in space, such that the stored data could not be unambiguously interpreted. Although the file was used by many different imaging software, the lack of adequate information on orientation obliged some, most notably spm, to include, for every analyze file, an accompanying file describing the orientation, such as a file with extension .mat. The new format was defined in two meetings of the so called Data Format Working Group (dfwg) at the National Institutes of…

View original post 詳見內文:約4,726字

Binarization:Adaptive Thresholding

>Image Data

1.在MATLAB中,影像以陣列(array)的形式儲存,影像的一個pixel即對應陣列中的一個元素。

  • 彩色影像(RGB Images):以m-by-n-by-3的陣列分別記錄R、G、B的數值。
  • 灰階影像(Intensity Image):R=G=B,深淺以灰度(gray scale)表示。

2.

10x10brick -> 這是一個10*10 pixels的灰階方塊,

用MATLAB讀取後,以下列矩陣形式儲存:

10x10brick%e6%94%be%e5%a4%a7    =  10x10brick_uint8

                                   =  10x10brick_double

陣列的大小跟影像一樣,共有10*10個元素。

可以看到陣列中左上的元素值較小,右下的偏大,呼應方塊中的深淺顏色。


I = imread('10x10brick.png');
I = rgb2gray(I)
doubleI = im2double(I)
singleI = im2single(I)
uint64I = uint64(I)

Gray scale Value:

data type        黑       灰             白

uint8                  0<—————>256

double                  0<—————>1


>Binariztion – A General Idea Behind “imbinarize"

brunch

這裡有一張我去台中吃夏爾(Shire)早午餐拍的圖,brunch.jpg

透過以下處理:

I=imread('brunch.jpg');
Igray=rgb2gray(I);   %convert RGB to grayscale
Ibi=imbinarize(Igray,'adaptive');
%use"imbinarize"to convert grayscale to binary image
%Parameter'adaptive':local thresholding method instead of global 

figure
imshow(I);
figure
imshow(Igray);
figure
imshow(Ibi);

以下三張影像,依序為原圖(RGB)->Grayscale->Binary:10x10brickarray

直接使用Image Processing Toolbox中的語法:"imbinarize"+’adaptive’就可以做到,

這背後運作的原理是什麼呢?

brunchgray

﹂(1)先回來看看這張灰階處理後的brunch.jpg

brunchgray%e6%94%be%e5%a4%a7%e7%b4%85%e9%bb%9e

﹂(2)放大來看,可以看到一格一格的pixel,假設程式要對標記紅色的pixel進行local thresholding,

brunchgray%e7%a4%ba%e7%af%84%e7%b4%85%e9%bb%9elocal%e7%af%84%e5%9c%8d%e6%94%be%e5%a4%a7

﹂(3)紅色方框是目標pixel的周圍100*100的neighborhood,電腦會根據這個範圍內的所有pixels的灰度,計算出一個local threshold

                        T = m+k*s

m𝑚是紅色方框內所有pixels的平均a,𝜎是它們的標準差,k則是介於0-1之間的參數,和neighborhood size一樣,可以由使用者自訂。

(別忘了處理pixel其實是在處理矩陣中的grayscale數值,所以可以算平均、求標準差。)

brunchgray%e7%b4%85%e9%bb%9e%e8%97%8d%e9%bb%9e%e7%a4%ba%e7%af%84%e6%94%be%e5%a4%a7

﹂(4)依照上述方法,處理影像中的每一顆pixel,直到所有pixels的灰度非1即0,

即可得到下面的黑白影像:

brunchBI.png

以上介紹的就是thresholding中,最最基礎的Niblack’s Method[1]

後來有更多人提出不同的methods[2],來改良處理pixel以及計算threshold的方式,目的是讓binarize的品質更好、能夠處理對比度低、背景雜訊多的影像,或是讓程式的工作效率更高。


*Reference
[1]Niblack, W.(1986)  An introduction to digital image processing.
[2]Rashmi Saini(2015) A Review:Document Image Binarization Techniques, Developments and Related Issues.
*More about images in MATLAB:
(1)https://www.mathworks.com/help/matlab/creating_plots/image-types.html
(2) https://www.mathworks.com/company/newsletters/articles/how-matlab-represents-pixel-colors.html
*More about data type:
http://www.matlabtips.com/you-must-choose/