博客
关于我
图像中米粒个数的识别(2)——如何从左到右依次给米粒计数
阅读量:716 次
发布时间:2019-03-21

本文共 1363 字,大约阅读时间需要 4 分钟。

图像中米粒个数识别及排序方法

我在之前的文章中详细探讨了如何实现图像中的米粒个数识别以及计数相关的算法和程序实现。但是有一个问题一直困扰着我:最后的米粒计数结果看起来是从任何位置开始的,这样如何才能确保我们能够从图像左上角开始,延续到右下角结束呢?

主要思路

我的主要思路是,从代号矩阵(L 记录米粒坐标)中统计出每个米粒的横纵坐标位置,并将其存储在一个元胞数组1中。然后,我们提取这个矩阵中的横坐标或纵坐标的最小值(根据排序方式选择横向或纵向)并存储在另一个元胞数组2中。

接下来,我们依次遍历数组2,针对最小值所在的行,找到元胞数组1中对应的米粒坐标,将其赋值到数组2中。这一步完成后,元胞数组2就包含了按照从左到右或从上到下的顺序排列的米粒坐标。

可能有点抽象,我们直接来看代码实现:

程序设计

以下是实现从左到右排序的具体代码示例:

% 从左到右依次计数n = 元胞数组大小RC = zeros(n, 2); % 初始化存储横纵坐标的元胞数组for k = 1:1:n    [r, c] = find(L == k);    RC(k, 1) = r; % 第k个米粒的横坐标    RC(k, 2) = c; % 第k个米粒的纵坐标end% 提取坐标矩阵的最小值(行最小值)row_min = zeros(n, 1);for jj = 1:1:n    row_min(jj, 1) = min(RC(jj, 1));end% 根据最小值对RC排序并赋值给RC2RC2 = zeros(n, 2);for jjj = 1:1:n    [~, kkk] = min(row_min); % 找到最小值的行索引    RC2(jjj, 1) = RC(kkk, 1);    RC2(jjj, 2) = RC(kkk, 2);end% 生成排序后的图像figureimshow(f);title('按顺序排序')hold onfor k = 1:1:n    r = RC2(k, 1);    c = RC2(k, 2);    rbar = mean(r); % 计算均值纵坐标    cbar = mean(c); % 计算均值横坐标    plot(cbar, rbar, 'Marker', 'o', 'MarkerEdgeColor', 'k', 'MarkerFaceColor', 'k', 'MarkerSize', 10); % 标注顺序号    plot(cbar, rbar, 'Marker', '*', 'MarkerEdgeColor', 'w'); % 标注排序标志    text(cbar, rbar, num2str(k), 'Color', 'red', 'FontSize', 14); % 标注序号endhold off

你可以看到,图像中米粒的大小按从左到右的顺序排列了。这也意味着从上到下的排列方式只需要将RC 矩阵的列和行交换位置即可实现。比如,将RC(jj, 1)改为RC(jj, 2),就可以实现自上而下的排序效果。

总结

通过上述方法,我们成功实现了从图像左上角到右下角的米粒坐标排序。这无疑为后续的图像分析和处理提供了有力的基础。希望以上内容能对你有所帮助!

转载地址:http://qrzrz.baihongyu.com/

你可能感兴趣的文章
python 到大数据开发工程师_如何成为一个大数据开发工程师?
查看>>
python 加密解密(base64, AES)
查看>>
Python 包管理器和 Node.js
查看>>
python 启动提示IDLE's subprocess didn't make conne...
查看>>
Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
查看>>
Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
查看>>
python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
查看>>
python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
查看>>
Python 和Java 哪个更适合做自动化测试?
查看>>
Python编程:掌握高级语言程序设计。从零基础到精通,收藏这篇就够了!
查看>>
python 图片转ico
查看>>
python 图片转文字、语音转文字、文字转语音保存音频并朗读
查看>>
python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
查看>>
Python 在并行进程之间共享字典
查看>>
Python 垃圾收集器文档
查看>>
python 基于 wordcloud + jieba + matplotlib 生成词云
查看>>
python 基于detectron或mask_rcnn的mask遮罩区域进行图片截取
查看>>
Python编程:Tkinter图形界面设计(2)
查看>>
Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)
查看>>
Python 基础一
查看>>