这个例子展示了如何使用ThingSpeak™和image Processing Toolbox™从网站读取图像,并计算图像中圆形物体的数量。计算值存储在ThingSpeak通道中。
使用webread
从公共URL导入图像。图像文件有很多数据,你只需要一个子集的图像数据来计数硬币。为了缩短处理时间,可以调整图像的大小。使用imresize
将图像裁剪成原来大小的30%。
rgb = webread (“https://www.publicdomainpictures.net/pictures/40000/velka/british-coins.jpg”);RGB = imresize(RGB, 0.3);imshow (rgb)
图像中除了有多个圆圈需要检测外,还含有不同颜色的硬币,这些硬币相对于背景有不同的对比度。青铜色的钱币与此背景形成强烈的对比。银币的颜色更接近背景。使用imfindcircles
数硬币。
1.默认情况下,imfindcircles
寻找比背景更亮的圆形物体。设置其参数“ObjectPolarity”
来“黑暗”
寻找黑眼圈。
2.这个函数imfindcircles
有一个参数“敏感”
您可以使用它来控制内部阈值,同时查找圆形对象。设置“敏感”
0.92”。
3.调用imfindcircles
在这张搜索半径为[80 130]像素的图像上。圆心向量的长度等于所找到的圆的数目。
[圆心,半径]= imfindcircles(rgb,[80 130],“ObjectPolarity”,“黑暗”,“敏感”, 0.92);numCircles =长度(中心)
numCircles = 5
您可以使用这个示例和ThingSpeak频道存储和跟踪动态图像的内容。将圆圈的数目写入由channelID指定的ThingSpeak频道。改变channelID
为您的通道ID,并为您自己的通道指定Write API KeywriteAPIKey
.
channelID = 17504;writeAPIKey =“23 zlgobbu9twhg2h”;thingSpeakWrite (channelID numCircles,“Writekey”, writeAPIKey);
imfindcircles
(图像处理工具箱)|imresize
(MATLAB)|imshow
(MATLAB)