在图像中查找笔记
回答
下面是一些代码让你去......这不是完美的,但这是一个有趣的哈哈哈哈。
我所做的就是用磁盘结构元素腐蚀图像,直到图像中留下的是形状,看起来最像圆圈。然后我再次侵蚀,但这次是以一个与音符接近的角度定向的线结构元素;我估计它大约是15度。然后,打电话regionprops
获取质心,然后绘制它们。
代码:
clear
clc
BW = im2bw(imread('Notes.png'));
BW = imclearborder(BW);
%//Erode the image with a disk structuring element to obtain circleish
%// shapes.
se = strel('disk',2);
erodedBW = imerode(BW,se);
这里erodedBW
看起来是这样的:
%// Erode again with a line oriented at 15 degrees (to ~ match orientation of major axis of notes...very approximate haha)
se2 = strel('line',5,15);
erodedBW2 = imerode(erodedBW,se2);
erodedBW2
看起来是这样的:
然后找到重心,绘制他们
S = regionprops(erodedBW2,'Centroid');
figure;
imshow(BW)
hold on
for k = 1:numel(S)
scatter(S(k).Centroid(:,1), S(k).Centroid(:,2),60,'filled')
end
输出:未检测
空笔记,但在使用其他形态学操作我想是可控的。
希望有帮助!
要检测空白音符,可能对图像的**反转**应用相同的操作。无论如何,这不仅仅是OP应得的。好样的! +1。 – rayryeng 2015-02-24 22:35:28
哦,好主意@rayryeng我没想过!我尝试在磁盘前使用'strel'这一行,但结果并不好,我觉得太懒了,以至于无法进一步深入:)感谢+1! – 2015-02-24 22:47:17
你也可能需要做一个'bwareaopen',因为如果我们在倒数上应用相同的逻辑,仍然可能会有一些噪音......例如在工作人员顶部的高音谱号顶部的孔。 ..还是很好的! – rayryeng 2015-02-24 22:52:29
- 1. 阅读图像中Jupyter笔记本Jupyter笔记本
- 2. 在图像中查找图像
- 3. Rails按日期查找笔记
- 4. IPython的笔记本图像PDF转换
- 5. 在图像中查找图案
- 6. 在乐谱图像中检测音乐笔记点的位置
- 7. 如何在Jupyter笔记本中加载多个图像?
- 8. 查找图像
- 9. 查找图像
- 10. OneNote API在查询/笔记/笔记本时返回HTTP 500
- 11. 查找图像中的子图像
- 12. XmlDocument.SelectNodes找不到笔记(C#)
- 13. 印象笔记,最有效的方式找到任务笔记
- 14. 查找未使用的图像或覆盖+ imageNamed:记录未找到图像
- 15. 查找莲花笔记文档所在的文件夹
- 16. 在图像中查找重复图案/图像
- 17. 在Java中的图像中查找图像
- 18. 在C中查找放大图像中的子图像#
- 19. 在图像中查找文本
- 20. 在图像中查找黑方块(matlab)
- 21. Android在图像中查找文档
- 22. 在图像中查找网格
- 23. 在图像中查找单独的块
- 24. 在图像中查找白色矩形
- 25. 如何在Sharepoint中查找图像?
- 26. 在图像中查找对象
- 27. 在图像中查找多个对象
- 28. HTML2Canvas空白图像在iPad和笔记本电脑上
- 29. 将图像嵌入到ipython笔记本中进行发布
- 30. 显示图像jupyter笔记本对准中心
哇,这是一个有趣的问题!这肯定会很难,因为与笔记相比,笔记有类似的结构(谱号,尖/平标志)。这里的形状分析可能很困难。你只是想要笔记吗?那周围的员工队伍呢?将这些作为提取结果的一部分是否可以接受? – rayryeng 2015-02-24 17:10:03
我只想要每个音符的圆圈!其他线对我来说并不重要 – onlyappleapp 2015-02-24 17:13:54
问题的一部分可能是笔记通常不会打印成圆形 - 它们是椭圆形的。某种形式的模板匹配可能会奏效 - 捕获一个音符头和每边几个像素的小图像。然后扫描图像寻找类似的东西。 – 2015-02-24 17:17:25