灰度图像阀值变换
基本公式
f(x) = 0 ( x < T)
f(x) = 255 (x>=T) T为给定的阀值
VC代码:
当图像的像素点的灰度大于T的时候,设置这个点为全黑,要不然为全白。这样可以只选择我们感兴趣的领域。
一下代码转自数字图像与机器视觉:
void CImgProcess::Threshold(CImgProcess *pTo, BYTE bThre)
{
int i, j;
BYTE bt;
for(j = 0; j < m_pBMIH->biHeight; j ++)
{
for(i=0; i<m_pBMIH->biWidth; i++)
{
bt = GetGray(i, j);
if(bt<bThre)
bt = 0;
else
bt = 255;
pTo->SetPixel(i, j, RGB(bt, bt, bt));
}
}
}
相应的matlab代码:
I = imread('rice.png);
thresh = graythresh(I);//自适应设置阀值
bw1 = im2bw(I, thresh);
bw2 = im2bw(I, 130/255);//手工设置阀值
subplot(1,3,1);imshow(I);
subplot(1,3,2);imshow(bw1);
subplot(1,3,3);imshow(bw2);
本文介绍了灰度图像阈值变换的基本概念与实现方法。通过一个简单的公式将图像像素分为两类,实现图像二值化。提供了VC++和MATLAB两种语言的实现代码,帮助读者理解和实践图像处理中的阈值变换技术。
1245

被折叠的 条评论
为什么被折叠?



