discuz 科技网站模板,怎么下载ppt免费模板,软件开发流程以及简要描述,wordpress教程主题图像灰度
彩色图像转化为灰度图像的过程是图像的灰度化处理。彩色图像中的每个像素的颜色由R#xff0c;G#xff0c;B三个分量决定#xff0c;而每个分量中可取值0-255#xff0c;这样一个像素点可以有256*256*256变化。而灰度图像是R#xff0c;G#xff0c;B三个分量… 图像灰度
彩色图像转化为灰度图像的过程是图像的灰度化处理。彩色图像中的每个像素的颜色由RGB三个分量决定而每个分量中可取值0-255这样一个像素点可以有256*256*256变化。而灰度图像是RGB三个分量相同的一种特殊的彩色图像其中一个像素点的变化范围为256种。灰度图像的描述与彩色图像一样仍然反映了整副图像的整体和局部的色度和高亮等级的分布和特征。
在OpenCV中用cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)来实现对图像进行灰度化处理。
import cv2
import rclpy
from rclpy.node import Node
import numpy as np
from ament_index_python.packages import get_package_share_directory #获取shares目录绝对路径class OpenCVNode(Node):def readImg(self,img_name: str):default_image_path get_package_share_directory(yahboom_esp32ai_car)/resource/img_nameself.get_logger().info(f打开图片:{default_image_path})img cv2.imread(default_image_path)self.get_logger().info(fimage shape:{img.shape})#灰度gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)cv2.imshow(src,img)cv2.imshow(gray,gray)cv2.waitKey(0)def main():rclpy.init()node OpenCVNode(opencvNode)node.readImg(2.jpg) rclpy.spin(node)rclpy.shutdown()
效果 OpenCV图像二值化处理
给定阈值大于阈值的为0黑色或 255白色使图像称为黑白图。阈值可固定也可以自适应阈值。自适应阈值一般为一点像素与这点为中序的区域像素平均值或者高斯分布加权和的比较。
cv2.thresholdsrc, threshold, maxValue, thresholdType
参数含义
src原图像
threshold当前阈值
maxVal最大阈值一般为255
thresholdType阈值类型
cv.THRESH_BINARYcv.THRESH_BINARY_INVcv.THRESH_TRUNCcv.THRESH_TOZEROcv.THRESH_TOZERO_INV
返回值
retval与参数thresh一致
dst 结果图像
import cv2
import rclpy
from rclpy.node import Node
import numpy as np
from ament_index_python.packages import get_package_share_directory #获取shares目录绝对路径class OpenCVNode(Node):def readImg(self,img_name: str):default_image_path get_package_share_directory(yahboom_esp32ai_car)/resource/img_nameself.get_logger().info(f打开图片:{default_image_path})src cv2.imread(default_image_path)#灰度img cv2.cvtColor(src,cv2.COLOR_BGR2GRAY)ret,thresh1 cv2.threshold(img,127,255,cv2.THRESH_BINARY)ret,thresh2 cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV)ret,thresh3 cv2.threshold(img,127,255,cv2.THRESH_TRUNC)ret,thresh4 cv2.threshold(img,127,255,cv2.THRESH_TOZERO)ret,thresh5 cv2.threshold(img,127,255,cv2.THRESH_TOZERO_INV)cv2.imshow(gray,img)cv2.imshow(BINARY,thresh1)cv2.imshow(BINARY_INV,thresh2)cv2.imshow(TRUNC,thresh3)cv2.imshow(TOZERO,thresh4)cv2.imshow(TOZERO_INV,thresh5)cv2.waitKey(0)def main():rclpy.init()node OpenCVNode(opencvNode)node.readImg(1.jpg) rclpy.spin(node)rclpy.shutdown()
效果如下 图像边缘检测
边缘检测是识别出图像中亮度变化剧烈的像素点构成的集合。图像边缘的正确检测对于分析图像中的内容、实现图像中物体的分割、定位等具有重要的作用。边缘检测大大减少了源图像的数据量显著减少图像的数据规模。主要是从数学角度去分类简单了解下背景如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数函数值的变化趋势可以用函数的导数描述图像的边缘对应在灰度值函数中是函数值突然变大的区域进而确定图像中的边缘位置。
分类如下
一阶导数的边缘检测算子:通过计算图像的梯度值来检测图像的边缘常见的有Roberts算子、Sobel算子和Prewitt算子。
二阶导数的边缘算子:通过寻求二阶导数中的过零点来检测边缘常见的有Laplacian 算子此类算子对噪声敏感。
其他边缘算子:前面两类均是通过微分算子来检测图像边缘还有一种就是Canny算子其是在满足一定约束条件下推导出来的边缘检测最优化算子。
目前有多种算法可以进行边缘检测虽然Canny算法年代久远但可以说它是边缘检测的一种标准算法而且仍在研究中广泛使用。
Canny算子的简要步骤如下
1去噪声应用高斯滤波来平滑图像目的是去除噪声
2梯度找寻图像的梯度
3非极大值抑制应用非最大抑制技术来过滤掉非边缘像素将模糊的边界变得清晰。该过程保留了每个像素点上梯度强度的极大值过滤掉其他的值。
4应用双阈值的方法来区分强边缘和弱边缘
5利用滞后技术来跟踪边界。若某一像素位置和强边界相连的弱边界认为是边界其他的弱边界则被删除。
背后有很多数学推导过程网上很多大佬写文章介绍还有很多深度展开调整参数的。 https://blog.csdn.net/zaishuiyifangxym/article/details/90142702
https://zhuanlan.zhihu.com/p/447565904
https://zhuanlan.zhihu.com/p/99959996
看下OpenCV里面canny算法的实现步骤
.Canny方法处理得到图像edgescv2.Canny( image, threshold1, threshold2[, apertureSize[, L2gradient]])
参数含义
edges计算得到的边缘图像
image 计算得到的边缘图像一般是高斯处理后得到的图像
threshold1 处理过程中的第一个阈值
threshold2 处理过程中的第二个阈值
apertureSize Sobel 算子的孔径大小
import cv2
import rclpy
from rclpy.node import Node
import numpy as np
from ament_index_python.packages import get_package_share_directory #获取shares目录绝对路径class OpenCVNode(Node):def readImg(self,img_name: str):default_image_path get_package_share_directory(yahboom_esp32ai_car)/resource/img_nameself.get_logger().info(f打开图片:{default_image_path})img cv2.imread(default_image_path)#灰度gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#高斯降噪gaussian cv2.GaussianBlur(gray, (5, 5), 0)# Canny算子Canny50 cv2.Canny(gaussian, 50, 50)Canny100 cv2.Canny(gaussian, 50, 100)Canny150 cv2.Canny(gaussian, 50, 150)#cv2.imshow(gray,gray)cv2.imshow(Canny50,Canny50)cv2.imshow(Canny100,Canny100)cv2.imshow(Canny150,Canny150)cv2.waitKey(0)def main():rclpy.init()node OpenCVNode(opencvNode)node.readImg(e.jpg) rclpy.spin(node)rclpy.shutdown()
通过调整canny参数可见效果不同第二个阈值越大图片丢失细节越多。 OpenCV绘制图形
划线
cv2.linedstpt1pt2colorthicknessNonelineTypeNoneshiftNone函数进行线段的绘制。
参数含义
dst输出图像。
pt1pt2必选参数。线段的坐标点分别表示起始点和终止点
color必选参数。用于设置线段的颜色
thickness可选参数。用于设置线段的宽度
lineType可选参数。用于设置线段的类型可选88邻接连接线-默认、44邻接连接线和cv2.LINE_AA 为抗锯齿
画矩形
cv2.rectangleimgpt1pt2colorthicknessNonelineTypeNoneshiftNone
参数含义
img画布或者载体图像
pt1pt2必选参数。矩形的顶点分别表示顶点与对角顶点即矩形的左上角与右下角这两个顶点可以确定一个唯一的矩形可以理解成是对角线。
color必选参数。用于设置矩形的颜色 画圆
cv2.circle(img, center, radius, color[,thickness[,lineType]])
参数含义
img:画或者载体图像布
center为圆心坐标格式 50,50
radius半径
thickness 线条粗细。默认为1.如果-1则为填充实心
lineType线条类型。
画椭圆
cv2.ellipse(img, center, axes, angle, StartAngle, endAngle, color[,thickness[,lineType]
参数含义
center椭圆的中心点xy
axes指的是短半径和长半径xy
StartAngle圆弧起始角的角度
endAngle圆弧终结角的角度
画多边形
cv2.polylines(img,[pts],isClosed, color[,thickness[,lineType]])
参数含义
pts多边形的顶点
isClosed是否闭合。True/False
文字
cv2.putText(img, str, origin, font, size,color,thickness)
参数含义
img输入图像
str绘制的文字
origin左上角坐标(整数)可以理解成文字是从哪里开始的
font字体
size字体大小
color字体颜色
thickness字体粗细
import cv2
import rclpy
from rclpy.node import Node
import numpy as np
from ament_index_python.packages import get_package_share_directory #获取shares目录绝对路径class OpenCVNode(Node):def readImg(self,img_name: str):default_image_path get_package_share_directory(yahboom_esp32ai_car)/resource/img_nameself.get_logger().info(f打开图片:{default_image_path})img cv2.imread(default_image_path)#划线line cv2.line(img, (50,20), (20,100), (255,0,255), 10)#画矩形rect cv2.rectangle(img, (110,50), (200,200), (255,0,255), 10)#画圆circle cv2.circle(img, (280,120), 50, (255,0,255), 10)#画椭圆ellipse cv2.ellipse(img, (400,120), (20,50),0,0, 360,(255,0,255), 5)# textcv2.putText(img,bohu text test,(50,550),cv2.FONT_HERSHEY_SIMPLEX,1,(0,200,0),2)#多边形points np.array([[120,250], [340,440], [350,410], [250,250]], np.int32)cv2.polylines(img, [points],True,(255,0,255), 5)cv2.imshow(gray,img)cv2.waitKey(0)def main():rclpy.init()node OpenCVNode(opencvNode)node.readImg(e.jpg) rclpy.spin(node)rclpy.shutdown() 文章转载自: http://www.morning.wphfl.cn.gov.cn.wphfl.cn http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.chrbp.cn.gov.cn.chrbp.cn http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn http://www.morning.nwclg.cn.gov.cn.nwclg.cn http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.rrgqq.cn.gov.cn.rrgqq.cn http://www.morning.skrh.cn.gov.cn.skrh.cn http://www.morning.3jiax.cn.gov.cn.3jiax.cn http://www.morning.ykwgl.cn.gov.cn.ykwgl.cn http://www.morning.gqtw.cn.gov.cn.gqtw.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.mttqp.cn.gov.cn.mttqp.cn http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn http://www.morning.srwny.cn.gov.cn.srwny.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.xhgxd.cn.gov.cn.xhgxd.cn http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn http://www.morning.tdcql.cn.gov.cn.tdcql.cn http://www.morning.cjrmf.cn.gov.cn.cjrmf.cn http://www.morning.smkxm.cn.gov.cn.smkxm.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn http://www.morning.jjzxn.cn.gov.cn.jjzxn.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.ryrgx.cn.gov.cn.ryrgx.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.ckwxs.cn.gov.cn.ckwxs.cn http://www.morning.ie-comm.com.gov.cn.ie-comm.com http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn http://www.morning.yfstt.cn.gov.cn.yfstt.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.fdwlg.cn.gov.cn.fdwlg.cn http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn http://www.morning.ypxyl.cn.gov.cn.ypxyl.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.sjwiki.com.gov.cn.sjwiki.com http://www.morning.nchlk.cn.gov.cn.nchlk.cn http://www.morning.kdnrc.cn.gov.cn.kdnrc.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.nxcgp.cn.gov.cn.nxcgp.cn http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn http://www.morning.dqrhz.cn.gov.cn.dqrhz.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.yqyhr.cn.gov.cn.yqyhr.cn http://www.morning.tzlfc.cn.gov.cn.tzlfc.cn http://www.morning.llmhq.cn.gov.cn.llmhq.cn http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn http://www.morning.rahllp.com.gov.cn.rahllp.com http://www.morning.ybnzn.cn.gov.cn.ybnzn.cn http://www.morning.nrpp.cn.gov.cn.nrpp.cn http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn http://www.morning.kjlia.com.gov.cn.kjlia.com http://www.morning.rdng.cn.gov.cn.rdng.cn http://www.morning.ztqj.cn.gov.cn.ztqj.cn http://www.morning.thjqk.cn.gov.cn.thjqk.cn http://www.morning.yhgbd.cn.gov.cn.yhgbd.cn http://www.morning.mngyb.cn.gov.cn.mngyb.cn http://www.morning.hsflq.cn.gov.cn.hsflq.cn http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn http://www.morning.jfmyt.cn.gov.cn.jfmyt.cn http://www.morning.psdbf.cn.gov.cn.psdbf.cn http://www.morning.bmncq.cn.gov.cn.bmncq.cn http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.lprfk.cn.gov.cn.lprfk.cn http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.qxkjy.cn.gov.cn.qxkjy.cn http://www.morning.kaakyy.com.gov.cn.kaakyy.com http://www.morning.lbfgq.cn.gov.cn.lbfgq.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.rnjgh.cn.gov.cn.rnjgh.cn