c#编程从图像中提取数据在问题

比如一个黑色背景的图片,其中有好多的光点,并且大小和强度各不相同,怎么从中搜索出所有在光点在中心,半径等一些必要在信息,求算法或者思路... 比如一个黑色背景的图片,其中有好多的光点,并且大小和强度各不相同,怎么从中搜索出所有在光点在中心,半径等一些必要在信息,求算法或者思路 展开
 我来答
匿名用户
2013-07-06
展开全部
/// <summary>
/// 获取指定透明度的图像
/// </summary>
/// <param name="SourceBitmap">源图像</param>
/// <param name="OpaCityValue">透明度百分比</param>
/// <returns></returns>
/// <remarks></remarks>
public Bitmap TheTransparentBitmap(Bitmap SourceBitmap, double OpaCityValue)
{
try {
//定义临时图片副本
Bitmap ForOutBitmap = new Bitmap(SourceBitmap);
//定义图像数据
BitmapData bmpDATA = new BitmapData();
//将图像指定区域数据赋值
bmpDATA = ForOutBitmap.LockBits(new Rectangle(0, 0, SourceBitmap.Width - 1, SourceBitmap.Height - 1), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
//定义用来计算的Byte数组
byte[] BTS = new byte[bmpDATA.Stride * bmpDATA.Height + 1];
//将Byte设置为指定的图像数据
System.Runtime.InteropServices.Marshal.Copy(bmpDATA.Scan0, BTS, 0, BTS.Length - 1);
//为避免"除数不可为0"而设置的计算用变量
int tmpValue = 0;
//因已经指定为32位ARGB模式,所以每4个排列为 B G R A,A即透明度
for (int I = 0; I <= BTS.Length - 4; I += 4) {
tmpValue = BTS[I + 3] * OpaCityValue;
//修改A透明度
BTS[I + 3] = tmpValue;
}
//完成计算后将Byte组返回给指定的图像数据
System.Runtime.InteropServices.Marshal.Copy(BTS, 0, bmpDATA.Scan0, BTS.Length - 1);
//解锁该图像数据以使调用线程继续执行
ForOutBitmap.UnlockBits(bmpDATA);
//返回处理后的图像
return ForOutBitmap;
} catch (Exception ex) {
//如出现异常则返回空值
return null;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式