您當前的位置:首頁 > 遊戲

MATLAB科研影象處理——共定位散點圖的繪製

作者:由 Treasure琛 發表于 遊戲時間:2021-02-08

之前

介紹過怎樣利用ImageJ進行熒光共定位分析

共定位散點圖可以對共定位關係進行視覺化。但外掛自帶的散點圖繪製比較侷限

,有很多同學想自己畫出共定位散點圖,並進行自定義。

這篇文章會解決怎樣利用

MATLAB(R2019a)繪製共定位散點圖。

一、問題解析

首先,我們需要明白共定位散點圖的定義,下圖是一個

共定位散點圖的示意圖

[1]:

MATLAB科研影象處理——共定位散點圖的繪製

x軸為綠色熒光的灰度值,y軸為紅色熒光的灰度值。

散點圖上的任一個點P(x,y),代表了一類pixel,這一類pixel在綠色通道的灰度值為x,在紅色通道的灰度值為y,該點顏色的深淺代表了這類pixel出現的次數。

所以這一問題的可以分為三部分:

1、找到兩個通道,同一位置的pixel的灰度值,分別作為X和Y;

2、對同一類pixel出現的次數進行計數;

3、結合X,Y以及頻次進行畫圖。

MATLAB科研影象處理——共定位散點圖的繪製

二、共定位散點圖的繪製

以下面兩幅圖為例:

MATLAB科研影象處理——共定位散點圖的繪製

最終效果:

MATLAB科研影象處理——共定位散點圖的繪製

Coloc2效果:

MATLAB科研影象處理——共定位散點圖的繪製

1、例項程式碼

% This script shows how to draw the scatter plot of colocalization

% Written by Ethan Zhao, Feb。 2021

% Tutorial: https://zhuanlan。zhihu。com/p/349833936/

clear

close

ImgR

=

imread

‘red。tif’

);

ImgG

=

imread

‘green。tif’

);

Points

=

double

([

ImgR

(:),

ImgG

(:)]);

Scatter

=

zeros

256

256

);

for

ii

=

1

size

Points

1

Scatter

Points

ii

1

+

1

Points

ii

2

+

1

=

Scatter

Points

ii

1

+

1

Points

ii

2

+

1

+

1

end

figure

1

);

imagesc

Scatter

);

axis

image

colormap

hot

caxis

([

0

50

]);

ax

=

gca

ax

YDir

=

‘normal’

ax

XTick

=

1

256

];

ax

YTick

=

1

256

];

ax

XTickLabel

=

{

‘0’

‘255’

};

ax

YTickLabel

=

{

‘0’

‘255’

};

ax

XLabel

String

=

‘Green’

ax

YLabel

String

=

‘Red’

MATLAB科研影象處理——共定位散點圖的繪製

2、關鍵程式碼解析

(1)合併雙通道同一畫素點的灰度值

Points

=

double

([

ImgR

(:),

ImgG

(:)]);

這一步

利用colon把影象矩陣重新構造成列向量

,將影象的每一個pixel鋪展開來,並將兩張影象合併。

這裡需要注意

兩張原始影象的大小應該是完全一樣的

,且

需要把這個矩陣轉為double精度

(2)根據點出現的頻率進行賦值

for

ii

=

1

size

Points

1

Scatter

Points

ii

1

+

1

Points

ii

2

+

1

=

Scatter

Points

ii

1

+

1

Points

ii

2

+

1

+

1

end

紅色通道的灰度值為y(row),綠色通道的灰度值為x(column),這一類pixel每出現一次,在散點圖的該位置加1。

(3)影象標註

ax

XTick

=

1

256

];

ax

YTick

=

1

256

];

ax

XTickLabel

=

{

‘0’

‘255’

};

ax

YTickLabel

=

{

‘0’

‘255’

};

灰度值範圍是0~255,而最終得到的影象大小是256×256,所以

需要對XY的座標進行對應的標註

。實際座標為1的點,標註為‘0’。實際座標為256的點,標註為‘255’。

這種畫散點圖的方法是簡化版,更多細節參考程式碼:

參考文獻:

[1]。 Bolte S , F。 P。 CORDELIèRES。 A guided tour into subcellular colocalization analysis in light microscopy[J]。 Journal of Microscopy (Oxford), 2006, 224(3):213-232。

如果對於MATLAB影象處理有什麼問題可以私信我,或者給我發郵件:zhaoyc9@163。com

更多影象處理的教程可以關注我的專欄:

希望對大家有幫助~

標簽: points  ax  散點圖  灰度  II