【机器视觉与图像处理】基于MATLAB的角度计算

正文之前

最近新开了一门课,我十分感兴趣,或者是说老早就想接触类似方面的学习,但是一直没有真正着手,所以说,其实上课还是很有必要的,很多时候你想做的事情但是你根本没法开始,所以需要一个推动力,当一点点的作业加上完成学分的压力压在你的肩头,配合你早就蓄势待发的兴趣使然,就会爆发很大的热情去学习。就好比这门,机器视觉与图像处理技术, 我很感兴趣,所以昨天坐火车的时候我都在火车上把我们这门课的第一次作业做出来了。

正文

我们的第一次作业,是把下图中的这个风扇扇叶一个叶片的角度计算出来。

我一开始还苦思冥想,不知道怎么才能提取出来这个因素,所以很是烦恼不知道该如何是好,但是昨天看了下群里面的说法,我瞬间就理通了。只要转变下思维,把图像看成一个二维数组配上每个元素的大小不同代表着颜色深浅的想法就好了

他已经做到了这一步,剩下的就是不知道如何处理这个图形的元素,但是,我虽然目前还是个菜鸡,但是我好歹也是要念计算机的博士的人啊!!!怎么会被这种小问题难到??不存在的!!下面请看我的表演:

然后,想法有了。手段也有了。对数组的处理,尤其是一堆的只是bool量的二维数组,简直不要太简单好么?都不需要for嵌套了,直接取两个X坐标作为定值定量的检测这两行的数据,不就好了?下面是那位同学的想法:

我觉得,这样是给自己增加了工作量,反而让matlab变轻松了啊。怎么能这样呢?不存在的!!所以还是直接让matlab去计算吧,直接用两点确定一条直线的方式,给两条直线分别求出来斜率,然后在视觉的绝对坐标系下转化为角度,最后就得到咯~~:

这之间还发生了一个小插曲,那就是我给我的MATLAB爸爸跪舔的时候,直接被打脸了

这脸打的啪啪响!!

所以,最后这就是我的代码咯~~

pic=imread('/Users/zhangzhaobo/program/MATLAB/First_work_angles.jpg'); %读取照片作为一个对象读入matlab 而不是简单的打开
bw=im2bw(pic); % 我们需要的不是一个RGB图像,而是一个二值化图像就好了。至于什么是二值化,就是说黑白照咯,一个像素点,要不就是黑的要不就是白的,所以就很好整!!
bw=edge(bw,'canny');  % 边缘提取,一个一直困扰我的地方,因为我还没看到这些点!
%下面的变量分别就是我取点的列数,至于Y1 Y2 就是行数,因为读取出来的图像有点问题
first_dot1=0;
first_dot2=0;
second_dot1=0;
second_dot1=0;
Y1=400;Y2=450;

% 从400行第一个点到第2440个点,分别取值,为了防止噪声干扰,我还特意的给了一个范围以及限制。

for i=1:2440
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值