位置: IT常识 - 正文

模式识别与图像处理课程实验一:图像处理实验(颜色算子实验、Susan、Harris角点检测实验、 sobel边缘算子检测实验)(模式识别与图像处理能做什么)

编辑:rootadmin
模式识别与图像处理课程实验一:图像处理实验(颜色算子实验、Susan、Harris角点检测实验、 sobel边缘算子检测实验) 模式识别与图像处理课程实验一:图像处理实验-->> 颜色算子实验、Susan、Harris角点检测实验、 sobel边缘算子检测实验一、 实验内容二、 颜色算子实验2.1、 提取红色2.2、 提取绿色2.3、 提取蓝色三、 Susan、Harris角点检测实验3. 1、 实验程序3.1.1、Susan角点检测3.1.2、Harris角点检测四、 sobel边缘算子检测实验4.1、sobel边缘算子检五、 实验总结

推荐整理分享模式识别与图像处理课程实验一:图像处理实验(颜色算子实验、Susan、Harris角点检测实验、 sobel边缘算子检测实验)(模式识别与图像处理能做什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:模式识别与图像识别的区别,模式识别与图像处理车牌识别结课报告,模式识别与图像处理能做什么,模式识别与图像处理就业,模式识别与图像处理区别,模式识别与图像处理就业方向,模式识别与图像处理,模式识别与图像识别,内容如对您有帮助,希望把文章链接给更多的朋友!

一、 实验内容

要求编写一个包含颜色算子,Susan,Harris,角点,sobel边缘算子的程。

二、 颜色算子实验2.1、 提取红色实验的程序如下import numpy as npimport cv2 as cvimage = cv.imread("1.jpg")image = image / np.ones([1, 1, 3]).astype(np.float32)image = cv.cvtColor(image, cv.COLOR_BGR2RGB)print(image.shape)# 颜色算子# redredAdd = np.ones([1, 1, 3]).astype(np.float32)redAdd[0, 0, 0] = 1.0redAdd[0, 0, 1] = 0.5redAdd[0, 0, 2] = 0.25redSub = np.ones([1, 1, 3]).astype(np.float32)redSub[0, 0, 0] = 0.25redSub[0, 0, 1] = 0.5redSub[0, 0, 2] = 1.0image1 = np.mean(image * redAdd, 2)image2 = np.mean(image * redSub, 2) + 100imageRed = image1 / image2redMax = np.max(imageRed)redMin = np.min(imageRed)imageRed = 255 * (imageRed - redMin) / (redMax - redMin)cv.imwrite("1red.png", imageRed)

运行结果如下

实验原图 实验结果图 2.2、 提取绿色

实验的程序如下

import numpy as npimport cv2 as cvimage = cv.imread("1.jpg")image = image / np.ones([1, 1, 3]).astype(np.float32)image = cv.cvtColor(image, cv.COLOR_BGR2RGB)print(image.shape)# greengreenAdd = np.ones([1, 1, 3]).astype(np.float32)greenAdd[0, 0, 0] = 0.5greenAdd[0, 0, 1] = 1.0greenAdd[0, 0, 2] = 0.25greenSub = np.ones([1, 1, 3]).astype(np.float32)greenSub[0, 0, 0] = 0.5greenSub[0, 0, 1] = 0.25greenSub[0, 0, 2] = 1.0image1 = np.mean(image * greenAdd, 2)image2 = np.mean(image * greenSub, 2) + 100imageGreen = image1 / image2greenMax = np.max(imageGreen)greenMin = np.min(imageGreen)imageRed = 255 * (imageGreen - greenMin) / (greenMax - greenMin)cv.imwrite("1green.png", imageRed)

运行结果如下

实验原图

实验结果图

2.3、 提取蓝色实验的程序如下import numpy as npimport cv2 as cvimage = cv.imread("1.jpg")image = image / np.ones([1, 1, 3]).astype(np.float32)image = cv.cvtColor(image, cv.COLOR_BGR2RGB)print(image.shape)# bulebuleAdd = np.ones([1, 1, 3]).astype(np.float32)buleAdd[0, 0, 0] = 0.25buleAdd[0, 0, 1] = 0.5buleAdd[0, 0, 2] = 1.0buleSub = np.ones([1, 1, 3]).astype(np.float32)buleSub[0, 0, 0] = 1.0buleSub[0, 0, 1] = 0.5buleSub[0, 0, 2] = 0.25image1 = np.mean(image * buleAdd, 2)image2 = np.mean(image * buleSub, 2) + 100imageBlue = image1 / image2blueMax = np.max(imageBlue)blueMin = np.min(imageBlue)imageBlue = 255 * (imageBlue - blueMin) / (blueMax - blueMin)cv.imwrite("1blue.png", imageBlue)模式识别与图像处理课程实验一:图像处理实验(颜色算子实验、Susan、Harris角点检测实验、 sobel边缘算子检测实验)(模式识别与图像处理能做什么)

运行结果如下

实验原图

实验结果图

三、 Susan、Harris角点检测实验3. 1、 实验程序3.1.1、Susan角点检测

Susan角点检测程序如下

import numpy as npimport cv2 as cvimage = cv.imread("2.jpg")image = np.mean(image, 2)height = image.shape[0]width = image.shape[1]print(image.shape)#susan 算子radius = 5imageSusan = np.zeros([height, width]).astype(np.float32)for h in range(radius, height-radius): for w in range(radius, width-radius): numSmall = 0 numLarge = 0 numAll = 0 for y in range(-radius, radius + 1): for x in range(-radius, radius+1): distance = np.sqrt(y**2 + x**2) if distance <= radius: numAll += 1 if image[h + y, w + x] < image[h, w] - 27: numSmall += 1 if image[h + y, w + x] > image[h, w] + 27: numLarge += 1 ratio = 1.0 * numSmall / numAll ratio2 = 1.0 * numLarge / numAll if ratio < 0.3: imageSusan[h, w] = 0.3 - ratio if ratio2 > 0.7: imageSusan[h, w] = ratio2 - 0.7imageMax = np.max(imageSusan)imageMin = np.min(imageSusan)imageSusan = 255*(imageSusan - imageMin)/(imageMax - imageMin)print(imageSusan.shape)cv.imwrite("2.png", imageSusan)运行结果如下

实验原图

实验结果图

3.1.2、Harris角点检测Harris角点检测程序如下import cv2 as cvimport numpy as npimport matplotlib.pyplot as plt# 读取图像img = cv.imread('3.jpg')lenna_img = cv.cvtColor(img, cv.COLOR_BGR2RGB)# 图像转换成灰度图像grayImage = cv.cvtColor(img, cv.COLOR_BGR2GRAY)grayImage = np.float32(grayImage)# Harris算子harrisImage = cv.cornerHarris(grayImage, 2, 3, 0.04)harrisImage = cv.dilate(harrisImage, None)# 设置阈值thresImage = 0.006 * harrisImage.max()img[harrisImage > thresImage] = [255, 0, 0]# 显示正常中文的标签plt.rcParams['font.sans-serif'] = ['SimHei']titles = [u'(a)原始图像', u'(b)Harris图像']images = [lenna_img, img]for i in range(2): plt.subplot(1, 2, i + 1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]), plt.yticks([])plt.show()

运行结果如下

四、 sobel边缘算子检测实验4.1、sobel边缘算子检sobel边缘算子检程序如下import numpy as npimport cv2image = cv2.imread("3.jpg")height = image.shape[0]width = image.shape[1]sobelResult = np.zeros([height - 2, width - 2, 1]).astype(np.float32)sobelX = np.zeros([3, 3, 1]).astype(np.float32)sobelY = np.zeros([3, 3, 1]).astype(np.float32)sobelX[0, 0, 0] = -1sobelX[1, 0, 0] = -2sobelX[2, 0, 0] = -1sobelX[0, 2, 0] = 1sobelX[1, 2, 0] = 2sobelX[2, 2, 0] = 1sobelY[0, 0, 0] = -1sobelY[0, 1, 0] = -2sobelY[0, 2, 0] = -1sobelY[2, 0, 0] = 1sobelY[2, 1, 0] = 2sobelY[2, 2, 0] = 1for h in range(0, height - 3): for w in range(0, width - 3): #求方向梯度 imageIncre = image[h:h + 3, w:w + 3] gradientX = np.sum(imageIncre * sobelX) gradientY = np.sum(imageIncre * sobelY) gradient = np.sqrt(gradientX**2 + gradientY**2) sobelResult[h, w, 0] = gradientimageMax = np.max(sobelResult)imageMin = np.min(sobelResult)sobelResult = 255*(sobelResult - imageMin) / (imageMax - imageMin)cv2.imwrite("3.png", sobelResult)

2、 运行结果如下

实验原图

实验结果图

五、 实验总结1、 掌握了编写含颜色算子图像处理、Susan与Harris角点图像检测、sobel边缘算子图像检测的程序编写方法。2、 通过实验、对于边缘检测算子与角点检测算子有了进一步的掌握。
本文链接地址:https://www.jiuchutong.com/zhishi/298747.html 转载请保留说明!

上一篇:【网络应用开发】实验1--Servlet技术及应用(网络应用开发技术)

下一篇:【JavaScript】JS实用案例分享:选择器组件 | 简易计算器(javascript js)

  • 完税价格是含税价
  • 4s店事故处理流程
  • 减免的企业所得税计入什么科目
  • 私车公用如何处理
  • 报销为什么不能多家赔付
  • 合同资产和合同负债属于什么科目
  • 留抵税额账上比申报表多280
  • 增值税发票已抵扣能否认定合同关系
  • 汇票委托书会计分录
  • 工会经费的减除项是什么
  • 短期借款利息都需要测算什么
  • 工程在建期间的会计分录
  • 贸易公司代采购怎么做账
  • 发票限额是含税还是不含
  • 营改增后二手房转让 一般计税 可以差额
  • 公司用上年多缴的社保
  • 开具发票时,哪些备注事项需要被重视?
  • 可转债税前收益和税后收益
  • 季报是根据什么制定的
  • 出口企业免抵增值税
  • 安全教育经费计算方法
  • 免征增值税项目销售额含税吗
  • 抄报税失败是怎么回事
  • 转正工资差额什么意思
  • 将自产产品无偿赠送税务处理
  • 应付票据包括哪些票
  • 报销培训费怎么做账
  • win10怎么调出命令行窗口
  • 收到材料未收到会计处理
  • 房地产资质代理公司排名
  • 系统之家一键重装系统步骤
  • 仓储费计入存货成本吗
  • 防伪税控盘全额抵扣政策
  • thinkphp5.0.23
  • 基础代谢
  • uniapp动态设置标题
  • thinkphp3.x中session方法的用法分析
  • 制作个性化的奖杯或者奖状
  • php点运算符
  • 劳务派遣开具发票
  • 应交增值税科目设置及账务处理
  • 金蝶建账初始数据修改
  • 工资算营业成本还是管理费用
  • 收到银行开的手续费发票如何做帐
  • 房产税减按70%的政策
  • 公司客户招待费用标准
  • 小规模纳税人公司注册条件
  • 会议费报销管理办法
  • 办公室做隔断多少钱
  • 营销活动开什么发票
  • 施工单位月末都需要结转什么
  • 企业以前年度亏损未弥补完
  • 公司收到美元怎么交税啊
  • 新公司怎样
  • 目前用到的两个字符
  • ubuntu20 vnc
  • win7开机chkdsk
  • 以管理员的身份运行是什么意思win10
  • xp关闭防火墙命令
  • windows使用svn命令
  • 如何重置win10
  • linux kill-15
  • pic是啥软件
  • win7怎么删除右键菜单
  • win8开机直接进入传统桌面
  • bootstrap启动类
  • Node.js中的事件循环是什么意思
  • framework res.apk
  • jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
  • Python3.6正式版新特性预览
  • 工作笔记范文100篇简短
  • 大学生活最后的日子
  • 水利基金税率‰6什么时候调整
  • 苗木增值税发票税率
  • 税务非正常户转正常户的申请报告
  • 净化水服务税务分类
  • 个人所得税工资扣税标准
  • 一般纳税人提供公共交通运输服务免征增值税
  • 深圳市国家税务局电话
  • 税务上的关联企业指哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设