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

保定网站建设维护学雷锋做美德少年网站

保定网站建设维护,学雷锋做美德少年网站,关于网站建设管理工作的报告,张家口建设网站文章目录 数字图像增强亮度与对比度转换几何变换图像裁剪尺寸变换图像旋转 噪声处理添加噪声处理噪声 数字图像增强 亮度与对比度转换 图像变换可分为以下两种#xff1a; 点算子#xff1a;基于像素变换#xff0c;在这一类图像变换中#xff0c;仅仅根据输入像素值计算… 文章目录 数字图像增强亮度与对比度转换几何变换图像裁剪尺寸变换图像旋转 噪声处理添加噪声处理噪声 数字图像增强 亮度与对比度转换 图像变换可分为以下两种 点算子基于像素变换在这一类图像变换中仅仅根据输入像素值计算相应的输出像素值邻域算子基于图像区域进行变换 两种常用的点算子是用常数对点的像素值进行乘法或加法运算可以表示为 g ( i , j ) α ∗ f ( i , j ) β g(i, j) \alpha * f(i, j) \beta g(i,j)α∗f(i,j)β 其中图像中点的位置为 ( i , j ) (i, j) (i,j)α值代表增益β值代表偏置。对图像进行亮度和对比度的变换就是一种点算子这两个参数分别可以用来控制对比度与亮度。可以通过调节这两个参数的值来对图片进行对比度或亮度的调节。即将原图像中的每一个像素点都加上一个偏置常数则可以使图片的亮度变大。类似地将原图片中的像素点乘上一个增益系数可以调整图片的对比度。 注意 图片像素点的像素值取值范围是[0255]一定不要让其溢出可以使用np.clip进行截断 示例图像 import cv2 import numpy as np# 方法1 基于addWeighted()函数实现 def convert_img1(img, alpha, beta):blank np.zeros(img.shape, img.dtype)return cv2.addWeighted(img, alpha, blank, 0, beta)# 方法2 通过for循环手动实现 def convert_img2(img, alpha, beta):rows, cols, chs img.shapenew_img np.zeros(img.shape, img.dtype)for i in range(rows):for j in range(cols):for k in range(chs):new_img[i, j, k] np.clip(alpha * img[i, j, k] beta, 0, 255)return new_imgimg cv2.imread(woman.png) cv2.imwrite(convert_img1.jpg, convert_img1(img, 2.2, 50)) cv2.imwrite(convert_img2.jpg, convert_img2(img, 2.2, 50))在上述代码中函数convert_img1()中的addWeighted()函数的参数列表分别为[img1,alpha,img2,beta,gamma]代表将两个图片进行如下计算 n e w _ i m g a l p h a ∗ i m g 1 b e t a ∗ i m g 2 g a m m a new\_img alpha * img1 beta * img2 gamma new_imgalpha∗img1beta∗img2gamma 而函数convert_img2()实现的过程就是通过for循环修改原始图片的像素值与函数convert_img1()的过程是一样的只不过convert_img1()函数调用addWeighted()函数的img2参数中图片的像素值都是0而已。 几何变换 图像的几何变换是指对图片中的图像像素点的位置进行变换的一种操作它将一幅图像中的坐标位置映射到新的坐标位置也就是改变像素点的空间位置同时也要估算新空间位置上的像素值。 图像裁剪 在图像数据的矩阵中裁剪出部分矩阵作为新的图像数据从而实现对图像的裁剪。 import cv2 import numpy as np# 图像裁剪 img cv2.imread(woman.png) print(img.shape)new_img img[20:300, 20:400] cv2.imwrite(crop_img.jpg, new_img)上述代码实现的过程是将原始的图像从第(2020)个像素点的位置裁剪到(300400)处裁剪的形状是矩形。 尺寸变换 修改图像的尺寸也就是修改图像的大小OpenCV的resize()函数可以实现这样的功能。对图像进行尺寸变换时必然会丢失或者增加一些像素点。在缩放时建议使用区域插值cv2.INTER_AREA可以避免出现波纹在放大时建议使用三次样条插值cv2.INTER_CUBIC但是其计算速度相对较慢。也可以使用线性插值cv2.INTER_LINEAR默认情况下所有改变图像尺寸大小的操作使用的插值法都是线性插值。 # 图像缩放 small_resize_img cv2.resize(img, (200, 200), interpolationcv2.INTER_AREA) cv2.imwrite(small_resize.jpg, small_resize_img)small_resize_img2 cv2.resize(img, None, fx0.5, fy0.6, interpolationcv2.INTER_AREA) # 图像的宽对应的是列数高对应的是行数 cv2.imwrite(small_resize2.jpg, small_resize_img2)图像旋转 旋转通过getRotationMatrix2D()函数来实现。 # 图像旋转 img cv2.imread(woman.png) rows, cols, _ img.shape rotated_mat cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1) # 第一个参数是旋转中心第2个为旋转角度第3个为旋转后的缩放因子 rotated_img cv2.warpAffine(img, rotated_mat, dsize(cols, rows)) cv2.imwrite(rot45.jpg, rotated_img)噪声处理 对训练数据添加适量噪声可以使训练后的模型更加鲁棒对模型的性能提升有一定帮助。对噪声进行消除可以增加图像的质量。 添加噪声 对图像添加两种常用噪声的方法 椒盐噪声高斯噪声 import cv2 import random import numpy as np# 添加椒盐噪声 def salt_and_pepper_noise(img, percentage):rows, cols, chs img.shapenum int(percentage * rows * cols)for i in range(num):x random.randint(0, rows-1)y random.randint(0, cols-1)z random.randint(0, chs-1)if random.randint(0, 1) 0:img[x, y, z] 0 # 黑色噪点else:img[x, y, z] 255 # 白色噪点return img# 添加高斯随机噪声 def gaussian_noise(img, mu, sigma, delta):rows, cols, chs img.shapefor i in range(rows):for j in range(cols):for k in range(chs):# 生成高斯分布的随机数与原始数据相加要取整value int(img[i, j, k] delta*random.gauss(mumu, sigmasigma))value np.clip(a_max255, a_min0, avalue)img[i, j, k] valuereturn imgimg cv2.imread(woman.png)cv2.imwrite(saltPepper.jpg, salt_and_pepper_noise(img, 0.3)) cv2.imwrite(gaussain.jpg, gaussian_noise(img, 0, 1, 100))可以看到上述为图像添加椒盐噪声和高斯噪声的方法。对于高斯噪声来说函数gaussian_noise()中的mu参数代表了随机数高斯分布的平均值sigma代表随机数高斯分布的标准差而参数delta代表一个系数表明添加高斯噪声的强度。 处理噪声 OpenCV提供了几种滤波方法如中值滤波、双边滤波、高斯模糊、二维卷积等 import cv2 import random import numpy as np# 模糊与滤波 salt_and_pepper_img cv2.imread(saltPepper.jpg) gaussain_img cv2.imread(gaussain.jpg)# 二维卷积 kernel np.ones((5, 5), np.float32) / 25 # 每个值是0.04 conv_2d_img cv2.filter2D(salt_and_pepper_img, -1, kernel) cv2.imwrite(filter_2d_img.jpg, conv_2d_img)# 中值滤波 median_blur_img cv2.medianBlur(salt_and_pepper_img, 5) # 参数5表示大小为5x5的区域像素值进行计算 cv2.imwrite(median_blur_img.jpg, median_blur_img)# 高斯模糊 gaussian_blur_img cv2.GaussianBlur(gaussain_img, (5, 5), 0) cv2.imwrite(gaussian_blur_img.jpg, gaussian_blur_img)# 双边滤波 bilateral_filter_img cv2.bilateralFilter(gaussain_img, 9, 75, 75) # 9代表邻域直径两个参数75分别代表值域与空域标准差 cv2.imwrite(bilateral_filter_img.jpg, bilateral_filter_img)可以看到中值滤波的效果是最好的。
http://www.hkea.cn/news/14405200/

相关文章:

  • 学什么专业可以做网站未经网安备案开设网站的
  • 服务器安装网站新乡网站建设
  • 深圳专门做网站的公司营销推广方案包括哪些内容
  • 网站建设流程 费用网站做直链下载存储解决方案
  • 做网站要不要买服务器wordpress 4.9下载
  • 南通网站建设要多少钱莆田做网站公司电话
  • 下拉框代码自做生成网站万网个人网站
  • 网站优化制作免费的个人简历模板 简约
  • 免费咨询律师软件温州seo收费
  • 儿童主题网站的内容建设电商营销推广有哪些?
  • 自考本科含金量高吗seo综合优化公司
  • 网站做系统叫什么软件吗品牌效应
  • 电商网站开发prd呼叫中心系统有哪些
  • 网站开发需要经过的几个主要阶段百度手机助手应用商店下载
  • 哪个网站做任务可以赚钱小程序制作需要什么语言
  • 营销网站建设公司推荐云南省建设厅网站查询
  • 商城网站建站wordpress wifri
  • 网站平台搭建和维护需要什么世界贸易网
  • 陕西公共资源交易中心官网安徽网站seo
  • 怎么做网站的排名优化武昌做网站公司推荐
  • 网站建设如何不被忽悠云南旅游网站
  • 一个网站上面有名优西安公司官网制作
  • 美橙网站建设怎么做微信表情开放平台
  • 做的网站怎么提交到百度上去如何编写html网页
  • 中山精品网站建设价位做金融类网站
  • 靓号网站开发专业简历制作注意事项
  • 微网站建设费用预算学习网站模板下载
  • 那些企业网站做的漂亮长治网站建设哪家好
  • iis7发布网站教程手机优化系统
  • 网站如何做邮箱订阅叠石桥网站建设