MATLAB科研影象處理——共定位散點圖的繪製
之前
介紹過怎樣利用ImageJ進行熒光共定位分析
:
共定位散點圖可以對共定位關係進行視覺化。但外掛自帶的散點圖繪製比較侷限
,有很多同學想自己畫出共定位散點圖,並進行自定義。
這篇文章會解決怎樣利用
MATLAB(R2019a)繪製共定位散點圖。
一、問題解析
首先,我們需要明白共定位散點圖的定義,下圖是一個
共定位散點圖的示意圖
[1]:
x軸為綠色熒光的灰度值,y軸為紅色熒光的灰度值。
散點圖上的任一個點P(x,y),代表了一類pixel,這一類pixel在綠色通道的灰度值為x,在紅色通道的灰度值為y,該點顏色的深淺代表了這類pixel出現的次數。
所以這一問題的可以分為三部分:
1、找到兩個通道,同一位置的pixel的灰度值,分別作為X和Y;
2、對同一類pixel出現的次數進行計數;
3、結合X,Y以及頻次進行畫圖。
二、共定位散點圖的繪製
以下面兩幅圖為例:
最終效果:
Coloc2效果:
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’
;
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
更多影象處理的教程可以關注我的專欄:
希望對大家有幫助~