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

帮公司做网站/网页开发流程

帮公司做网站,网页开发流程,武汉专业网站建设,如何用wordpress搭建录播课程一.亮度变换 首先有两个关联的说法: 亮度调整:像素强度整体变高或者变低。 对比度调整:暗处像素强度变低,亮处像素强度变高,从而拉大中间某个区域范围的显示精度。 opencv中操作这两种变换的公式为: 对比…

一.亮度变换

首先有两个关联的说法:

亮度调整:像素强度整体变高或者变低。

对比度调整:暗处像素强度变低,亮处像素强度变高,从而拉大中间某个区域范围的显示精度。

opencv中操作这两种变换的公式为:

对比度:需要通过alphabeta一起控制。

亮度:通过beta控制。

比如,图像中一点的像素为160,一点为10,我想增强对比度,那就是让这两点差异更大。可以让alpha为1.5,这样两点像素值就分别变成了240和15,然后beta为10,就变成了250和25,差异就更大了。

二.线性变换

cv2.addWeighted(src1, alpha, src2, beta, gamma)

- src1:第一张输入图像

- alpha:第一个输入图像的权重。

- src2:第二张输入图像

- beta:第二个输入图像的权重。

- gamma:一个标量,将被添加到权重求和的结果上,可用于调整总体亮度。

这里用了之前的颜色加权加法,本用于两张图相加,但其有一个参数gamma,会作为额外值添加进合并后结果并修改亮度。因此只做亮度变换的话,可以将其中的第二张图设为全黑,权重无所谓;或者设为全白(或其他值),权重设为0。然后根据gamma修改亮度

# 养成好习惯,自己敲代码
import cv2 as cv
import numpy as np# 导入图像
img = cv.imread('../images/cat1.png')# 进行线性变换(亮度调整)
dst = cv.addWeighted(img,1,np.zeros_like(img),0,40)
# dst = cv.addWeighted(img,1,np.full_like(img,40),0,40)
# dst = cv.addWeighted(img,1,np.ones_like(img),0,40)# 显示图像
cv.imshow('img', img)
cv.imshow('dst', dst)
cv.waitKey(0)
cv.destroyAllWindows()

np.ones_like()np.zeros_like()可以快速生成一张继承原图形状与维度的全黑或值全1的图片,其中传入img图像即可。np.full_like(img,value)可以生成一张全为指定值(如0.5)的图片。

三.直接像素值修改

numpy.clip(a, a_min, a_max)

对数组中的元素进行限定,将超出指定范围的元素值截断至指定的最小值和最大值之间

- a:输入数组。

- a_min:指定的最小值,数组中所有小于 a_min 的元素将被替换为 a_min

- a_max:指定的最大值,数组中所有大于 a_max 的元素将被替换为 a_max

这个API通常完成的是防止像素值溢出的功能,返回一个新图像。

import cv2 as cv
import numpy as np# 读取图像
img = cv.imread("../images/cat1.png")
p = 40dst=np.clip(img.astype(int)+p,0,255).astype(np.uint8)cv.imshow("img",img)
cv.imshow("dst",dst)
cv.waitKey(0)
cv.destroyAllWindows()

可以看到,代码中使用了两个astype()变换,那为什么要这么做呢?

首先,img图像与int类型整数做加法运算时会隐式地将图像中的像素值变换为int64类型,这种隐式的操作容易产生潜在问题,因此使用.astype(int)显示指定像素值为int32类型来进行加法运算(或者用 np.int32/64 都可以)。

而两者相加之后得到的数值依然是int类型,图像处理函数要求数据类型为unit8,因此在最后还需要加上.astype(np.unit8)来转化。

做到这里,其实有一种更方便的亮度调整方法:

就是创建滑条,用一个滑动的窗口来让亮度根据滑动的位置变化。

cv.createTrackbar(trackbar_name,window_name,trackbar_value,max_value,def)

- trackbar_name : 滑条的名字

- window_name : 滑条窗口的名字

- trackbar_value : 滑条默认所在的位置(值)

- max_value : 滑条最大的范围(值)

- def : 对图像操作的方法,该方法只能传入一个参数,就是trackbar_value

import cv2 as cv
import numpy as np# 给滑条创建窗口
window_name="Trackbar"
cv.namedWindow(window_name)
# 写一个改变图像亮度的方法
def change(p,img):# 把滑条范围映射到[-255,255] 原本滑条值[0,255]p=p/255*(255-(-255))-255# p=2*p-255#亮度变换dst=np.uint8(np.clip(img.astype(int)+p,0,255))cv.imshow("img",img)cv.imshow("dst",dst)# 读取图像
img = cv.imread("../images/cat1.png")# 创建滑条、设置参数
max_val=255# 滑条最大值
trackbar_name="p_value"# 滑条名
trackbar_value=150# 滑条初始值
cv.createTrackbar(trackbar_name,window_name,trackbar_value,255,lambda p:change(p,img))
cv.waitKey(0)
cv.destroyAllWindows()

上面的p/255就是将p这个加入的修改值归一化,然后映射到我们想调整的范围[-255,255]即总共510的范围里去,最后减去255表示把p的值真正地固定在[-255,255]中。

并且可以看到,我们创建了change函数传入创建滑条的函数,但是其中有两个参数,创建滑条时会报错。因此这里采用匿名函数强制绑定img回调函数change上,使得img这个参数能够正确传入。

http://www.whsansanxincailiao.cn/news/30726030.html

相关文章:

  • 做娱乐网站/推广普通话的宣传语
  • 烹饪考试试卷哪个网站可以做/html家乡网站设计
  • 阿里巴巴做网站教程/微信营销推广
  • drupal网站建设 北京/网络营销师工作内容
  • 网站设计形式/个人主页网页设计模板
  • 房地产销售平台网站建设/优化工具箱
  • 新疆生产建设兵团文联网站/上海最大的seo公司
  • 可用的ftp网站/企业网站搜索引擎推广方法
  • asp动态网站开发答案/网页设计
  • 班级做网站人的叫什么/自动发外链工具
  • 如何开电商平台/广州网站快速排名优化
  • 北京天津网站建设/电子商务网站建设教程
  • 网站副标题/网店代运营商
  • 国外服装定制网站/网站建设seo
  • word可以做网站链接吗/站长工具查询网站
  • 电商具体是做什么的上班/seo排名优化点击软件有哪些
  • 用旧电脑做网站/qq代刷网站推广免费
  • 怎样建立免费的个人网站/seo公司优化
  • 外贸做哪个网站平台/seo企业培训班
  • 如何在社交网站上做视频推广方案/外贸网站免费建站
  • 静态页面网站站标代码写进到静态页面了 怎么不显示呢?/蚌埠网络推广
  • 如何关闭网站/漯河网站seo
  • 社交网站开发教程/关键词调价工具哪个好
  • 天津网上商城网站建设/上海疫情最新消息
  • 中国交通建设集团网站/百度推广开户2400
  • b2b网站推广怎么做/seo门户
  • 时时彩的网站怎么做/怎么让百度收录我的网站
  • 沪佳装饰门店地址/品牌seo是什么意思
  • 微网站和web网站首页/排名优化软件
  • 网站 兼容性/百度网页游戏