// 限制图像, 防止出界
static int clamp_s(int value, int m_min, int m_max)
{
int ret = value;
if(value < m_min)
{
ret = m_min;
}else if(value > m_max)
{
ret = m_max;
}
return ret;
}
// data 图像数据
// width 图像宽度
// height 图像高度
// channel 通道数
// x y 画点坐标
// r 画点半径
int drewDot(unsigned char * data, int width, int height, int channel, int x, int y, int r)
{
int i, j, k;
int RR = 0;
for(j = y - r; j <= y + r; j ++)
{
for(i = x - r; i <= x + r; i ++)
{
RR = (j - y) * (j - y) + (i - x) * (i - x);
for(k = 0; k < channel; k ++)
{
if(RR <= r * r)
{
if(0 == k)
{
data[(clamp_s(j, 0, height - 1) * width + clamp_s(i, 0, width - 1)) * channel + k] = 255;
}else
{
data[(clamp_s(j, 0, height - 1) * width + clamp_s(i, 0, width - 1)) * channel + k] = 0;
}
}
}
}
}
return 0;
}
在一个图像数据上画圆点
最新推荐文章于 2025-06-24 15:16:13 发布