我在EMGU中有以下代码来提取连接的组件: Mat connected_array = new Mat();
Mat stats = new Mat();
Mat centroids = new Mat();
Mat ImgMat = new Mat();
CvInvoke.ConnectedComponentsWithStats(ImgThresh, connected_array, stats, centroids, LineType.EightConnected,DepthType.Cv32S);
我找不到任何方法来访问质心。
答案 0 :(得分:1)
EMGU将大多数数组包装到Mat对象中,然后您需要将其转换为数组以访问其内容(使用mat.CopyTo(array))。这不是文档中的直截了当 - 我不得不使用trail& amp;找出它是如何工作的错误:
<script>
$( "#scroll" ).scroll(function() {
var content = $(this).scrollTop() + $(this).innerHeight();
if (content == $(this)[0].scrollHeight) {
// $( "span" ).css( "display", "inline" ).fadeOut( "slow" );
console.log("reach end");
}
});
</script>
<style>
#scroll{
max-height: 100px;
overflow-y: auto;
width: 647px;
margin: auto;
}
</style>
<div id='scroll'>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
<p>hello world</p>
</div>
另一种常用方法是使用轮廓,EMGU也提供类似的功能。我用它来获得更好的性能。我也包括一个例子:
Mat labels = new Mat();
Mat stats = new Mat();
Mat centroids = new Mat();
MCvPoint2D64f[] centroidPoints;
double x, y;
int n;
n = CvInvoke.ConnectedComponentsWithStats(image, labels, stats, centroids, LineType.EightConnected, DepthType.Cv32S);
centroidPoints = new MCvPoint2D64f[n];
centroids.CopyTo(centroidPoints);
foreach (MCvPoint2D64f point in centroidPoints)
{
x = point.X;
y = point.Y;
}