当前位置: 首页 > wzjs >正文

金华金东区建设局网站经典企业网站欣赏

金华金东区建设局网站,经典企业网站欣赏,.网站空间,韶关市住房和城乡建设局网站图像预处理是计算机视觉任务中的关键步骤,它通过对原始图像进行处理,以提高后续图像分析、特征提取和识别的准确性。 示例图片 常见图像预处理方法 灰度化处理 法一 #灰度化处理 #法1,直接读取灰度图 import cv2 gray_imagecv2.imread(te…

        图像预处理是计算机视觉任务中的关键步骤,它通过对原始图像进行处理,以提高后续图像分析、特征提取和识别的准确性。

示例图片 

常见图像预处理方法


灰度化处理

法一

#灰度化处理
#法1,直接读取灰度图
import cv2
gray_image=cv2.imread('test.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('gray_image',gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果

 法二

#灰度化处理
#法2,读取时不指定 flags(默认 cv2.IMREAD_COLOR),然后使用 cv2.cvtColor 转换为灰度图
import cv2
image=cv2.imread('test.jpg',cv2.IMREAD_UNCHANGED)
grayt_image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow('gray_image',gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows() 

结果 

 说明

        两种方法都可对彩色图像进行灰度化处理,法一是在读取图像的同时将其转换为灰度图像。法二则是先读取彩色图像,再进行颜色空间转换。法一相对于法二更加节省内存,因为法一在图像处理的读取时就进行了灰度化处理,避免了彩色图像占用的大量内存空间。

        这两种处理方法的结果是一致的:
 


切片截取部分图像数据 

        读取后的图像是(高,宽,通道数)的ndarray结构,若我们对图像的某一部分感兴趣,那我们只需要在高和宽对应的数组上进行切片即可获取到图像的部分数据。   

#截取部分图像数据
import cv2
image=cv2.imread('test.jpg',cv2.IMREAD_UNCHANGED)
cv2.imshow('image',image[100:500,0:300])
cv2.waitKey(0)
cv2.destroyAllWindows()  

        原图像的尺寸为500x500,这里我们对其进行切片截取。截取区域为高[100:500]x宽[0:300]。


cv2.cvtColor() 颜色空间转换

      cv2.cvtColor()是OpenCV库中一个非常实用的函数,它能够将图像从一个颜色空间转换到另一个颜色空间。这种转换在图像处理中非常有用,因为不同的颜色空间对于特定的图像处理任务可能具有不同的优势。例如,在边缘检测中,灰度图像往往比彩色图像更有效。

#cv2.cvtColor()颜色空间转化
import cv2
image=cv2.imread('test.jpg')
image=cv2.cvtColor(src=image,code=cv2.COLOR_BGR2HSV)
#常用的颜色转化code
#BGR->Gray cv2.COLOR_BGR2GRAY​
#BGR->HSV cv2.COLOR_BGR2HSV
#BGR->RGB cv2.COLOR_BGR2RGB
#BGR->CMYK cv2.COLOR_BGR2CMYK#RGB->BGR cv2.COLOR_RGB2BGR
#RGB->HSV cv2.COLOR_RGB2HSV
#RGB->GRAY cv2.COLOR_RGB2GRAY#HSV->BGR cv2.COLOR_HSV2BGR
#HSV->RGB cv2.COLOR_HSV2RGB#GRAY->BGR cv2.COLOR_GRAY2BGR
#GRAY->RGB cv2.COLOR_GRAY2RGB
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

        我们常用的一些颜色空间有BGR,RGB,HSV,CMYK,GRAY这几种,在使用cv2.cvtColor()函数进行变换时,我们只需要按照cv2.COLOR_原颜色空间2新颜色空间的格式(2表示to)传入给code便可将图像从一种颜色空间转换到另一种。

将图像由BGR颜色空间变换到HSV空间后 


cv2.split():颜色通道提取

        颜色通道提取是图像处理中的一个基本且重要的步骤,它涉及到从图像中分离出红色、绿色、蓝色或其他颜色通道的信息。由于读取得到的图像结果是ndarray,因此我们既可以使用cv2内置函数split分离颜色通道,又可以使用切片的方式来获取三个颜色通道的信息。

import cv2
image=cv2.imread('test.jpg',cv2.IMREAD_UNCHANGED)
b,g,r=cv2.split(image)

直接使用cv2.split()函数对图像的3个颜色通道数据进行提取

import cv2
image=cv2.imread('test.jpg',cv2.IMREAD_UNCHANGED)
b,g,r=image[:,:,0],image[:,:,1],image[:,:,2]

 通过切片的方法对图像的3个颜色通道数据进行提取

二者得到的结果是一致的。 

  当然,如果我们只想保留图像在某个颜色通道上的数据,只需将该通道以外的所有数据置0即可。

import cv2
image=cv2.imread('test.jpg')
#将图像数据copy一份给blue_image,
#这样不会影响到后续可能要对原图像进行的操作
blue_image=image.copy()
blue_image[:,:,1]=blue_image[:,:,2]=0
cv2.imshow('blue_image',blue_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果


 cv2.resize():修改图像尺寸

        cv2的内置函数resize可以方便地调整图像的大小,值得注意的是,在修改图像尺寸时,为了尽量避免对图像质量造成过多的损失,可以通过选择适当的插值算法来保持图像的清晰度和细节。对此,cv2.resize函数的默认方法为

        放大时:cv2.INTER_CUBIC(双三次插值)

        缩小时:cv2.INTER_AREA(区域插值)

import cv2
import matplotlib.pyplot as plt
#plt.imshow的图像格式为RGB,因此读取图像数据时我们指定flags按照RGB格式
image=cv2.imread('test.jpg',cv2.IMREAD_COLOR_RGB)#原始图像大小为500x500
#resize函数参数:
image=cv2.resize(src=image, dsize=(600, 600),fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
#src:原图像ndarray
#dsize元祖形式,指定图像的高和宽
#fx:x轴上图像放大或缩小倍数
#fy:y轴上图像放大或缩小倍数
#interploation:图像插值方法
#需要注意的是当dsize为(0,0)或不存在时,fx,fy才会起作用,也就是说resize函数优先使用dsize#常用的interploation参数
#cv2.INTER_NEAREST:最近邻插值(速度快,但可能导致锯齿)
#cv2.INTER_LINEAR:双线性插值(默认,适用于大多数情况)
#cv2.INTER_CUBIC:双三次插值(高质量,计算成本较高)
#cv2.INTER_AREA:区域插值(缩小图像时效果较好)
#cv2.INTER_LANCZOS4:Lanczos插值(高质量,适用于放大)
plt.imshow(image)

cv2.resize()函数参数详解: 

 src原图像ndarray
 dsize元祖形式,指定调整后图像的高和宽
fxx轴上图像放大或缩小倍数
fyy轴上图像放大或缩小倍数
 interploation图像插值方法

   需要注意的是当dsize为(0,0)或不存在时,fx,fy才会起作用,也就是说resize函数优先使用dsize

                resize后的图像,原图像尺寸500x500,dsize=(0,0),按照fx,fy取值对图像大小进行调整


 cv2.addWeighted()图像融合

        在某些场景下我们需要对两张图片进行融合,考虑到图像经过cv2.imread()函数读取后均为ndarray,因此我们可以直接对两张图片的读取结果进行加减乘除运算,一般而言,图像进行融合时我们都采用线性融合的方式,比如我们可以直接将二者简单相加:

#图像融合,直接相加
import cv2
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
image1=cv2.imread('test.jpg',cv2.IMREAD_COLOR_RGB)
image2=cv2.imread('test1.jpg',cv2.IMREAD_COLOR_RGB)
image1=cv2.resize(image1,(800,800))
image2=cv2.resize(image2,(800,800))
newimage=image1+image2
print(image1[:3,:,0],'\n')
print(image2[:3,:,0],'\n')
print(newimage[:3,:,0])
plt.subplot(1,3,1),plt.imshow(image1),plt.title('图像1')
plt.subplot(1,3,2),plt.imshow(image2),plt.title('图像2')
plt.subplot(1,3,3),plt.imshow(newimage),plt.title('图像1+图像2')

 将两个图像直接相加

 结果

        当然,cv2还提供了addWeighted方法实现上述效果:

#图像融合,使用cv2.addWeighted函数
import cv2
plt.rcParams['font.sans-serif']=['SimHei']
image1=cv2.imread('test.jpg',cv2.IMREAD_COLOR_RGB)
image2=cv2.imread('test1.jpg',cv2.IMREAD_COLOR_RGB)
image1=cv2.resize(image1,(800,800))
image2=cv2.resize(image2,(800,800))
newimage=cv2.addWeighted(src1=image1,alpha=0.6,src2=image2,beta=0.8,gamma=5)
#src1:图像1
#alpha:图像1系数
#src2:图像2
#beta:图像2系数
#gamma;常数项
#newimage=0.5*image1+0.8*image2+5
plt.subplot(1,3,1),plt.imshow(image1),plt.title('图像1')
plt.subplot(1,3,2),plt.imshow(image2),plt.title('图像2')
plt.subplot(1,3,3),plt.imshow(newimage),plt.title('图像1+图像2')

   cv2.addWeighted()函数参数解析:

 src1图像1颜色矩阵
alpha图像1系数
src2图像2颜色矩阵
 beta图像2系数
 gamma常数项

   

 结果


 


文章转载自:

http://gnRizECZ.rmfwh.cn
http://uFDRDs4d.rmfwh.cn
http://mCuY2sCi.rmfwh.cn
http://x1x1gRgx.rmfwh.cn
http://K41ULZnC.rmfwh.cn
http://8vqNuh0U.rmfwh.cn
http://lMbNEKLX.rmfwh.cn
http://dGWL2H3n.rmfwh.cn
http://3cgp1HLy.rmfwh.cn
http://BOkOUaPd.rmfwh.cn
http://EcIO2QjV.rmfwh.cn
http://2rNf8cCd.rmfwh.cn
http://oU5QpYPu.rmfwh.cn
http://31potIpl.rmfwh.cn
http://E86x8ole.rmfwh.cn
http://q6JI7y3f.rmfwh.cn
http://2Ar0shaP.rmfwh.cn
http://BeJ7XNUP.rmfwh.cn
http://mq0IhyzJ.rmfwh.cn
http://0p72Q1vp.rmfwh.cn
http://DIomFUmN.rmfwh.cn
http://PayIoPxv.rmfwh.cn
http://cPte8jnf.rmfwh.cn
http://zSB76S7x.rmfwh.cn
http://PqBFyIdq.rmfwh.cn
http://1TQuhwyJ.rmfwh.cn
http://kGBtQPUr.rmfwh.cn
http://hEBjQZic.rmfwh.cn
http://qiT5flWm.rmfwh.cn
http://KThwsDQK.rmfwh.cn
http://www.dtcms.com/wzjs/671910.html

相关文章:

  • 网站seo流程定制app开发软件
  • 自己做的网站点击赚钱网站管理系统软件
  • 视频网站建设 方案陕西建设注册中心网站
  • 手机网站后台模板小游戏开发制作
  • vs2015网站开发教程宗学华 网站建设
  • 跳转网站注册网站不用手机短信验证的
  • 做外贸网站维护费是多少全国网站备案拍照
  • 如何建个人网站怎么把自己的网站推广
  • 吴江城乡建设局网站河南省建设信息网
  • 花都高端网站建设购物网站代码
  • 阳西县住房和城乡建设部网站中山做网站推广公司
  • 网站维护一年一般多少钱?广州免费公司注册
  • 河南省监理协会官方网站建设网站开发的前端技术有哪些
  • 深圳市网站建设公司设计公司济南网站seo报价
  • 网上做中考题的网站广州公司注册核名网址
  • 企业网站初始期如何优化顺企网查企业电话
  • 企业官网网站建设免费wordpress xss漏洞利用
  • 网站开发企业排名北京网站建设开发
  • 网站排名的优化网站的模版要怎么重新做
  • 电子招标投标平台网站建设wordpress获取动态页面
  • 网站里的副栏目是什么做淘客网站的
  • 如何建立微网站详细步骤成都电子商务网站建设公司
  • 网站优化建设工作总结范文西安微网站
  • 黄冈网站建设 网络推广建站还有前途么
  • 北京通网站建设价格浙江建站
  • 做旅游宣传哪个网站好怎么样看网站用什么程序做的
  • 亳州建设网站公司网站制作那家便宜
  • 设计类网站模板建立网站用什么软件
  • 百度免费网站申请中小企业网站建设教程
  • 个人虚拟网站模板网点地址信息获取错误是什么意思