有人可以帮我阅读和提取图像行和列的信息吗?
我的努力是从五线谱中提取信息。
示例五线谱图像:
对于包含多个五线谱线的图像,我需要按五线谱顺序提取数据。
有人可以帮我提供代码片段吗?制作一个逐行提取的算法?
有人可以帮我阅读和提取图像行和列的信息吗?
我的努力是从五线谱中提取信息。
示例五线谱图像:
对于包含多个五线谱线的图像,我需要按五线谱顺序提取数据。
有人可以帮我提供代码片段吗?制作一个逐行提取的算法?
无论您做什么,图像中的信息都是“按行/列”提取的;请记住,图像是根据其像素(即小方块)进行分析的。它一个接一个地读取所有这些小方块。
图像处理中的困难部分是处理特定的几何问题。例如:从这个逐行读取复杂形状中提取,例如链接中的一个五线谱。
在这里,您有一个小代码(用 C#.NET 编写)提供了您想要的算法的简单版本:它通过影响单个变量 ( ) 逐行或逐列读取readVertically
。我想这是一个足够好的介绍来帮助你:
private void readImage(string imagePath)
{
Bitmap imageBitMap = (Bitmap)Bitmap.FromFile(imagePath);
bool readVertically = true; //This flag tells where the image will be analysed vertically (true) or horizontally (false)
int firstVarMax = imageBitMap.Width; //Max. X
int secondVarMax = imageBitMap.Height; //Max. Y
if (!readVertically)
{
firstVarMax = imageBitMap.Height;
secondVarMax = imageBitMap.Width;
}
for (int firstVar = 0; firstVar < firstVarMax; ++firstVar)
{
for (int secondVar = 0; secondVar < secondVarMax; ++secondVar)
{
//Color of the given pixel. Here you can do all the actions you wish (e.g., writing these pixels to other file)
if (readVertically)
{
Color pixelColor = imageBitMap.GetPixel(firstVar, secondVar);
}
else
{
Color pixelColor = imageBitMap.GetPixel(secondVar, firstVar);
}
}
}
}