渐变处理

线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向

语法

background:-webkit-linear-gradient(direction, color1, color2, ...);/*Safari Opera Firefox*/
background:-moz-linear-gradient(direction, color1, color2, ...);/*Firefox*/
background:linear-gradient(direction, color1, color2, ...);/*标准语法*/

渐变方式 

 SafariOperaFirefox标准的语法
从上到下toptoptopto bottom
从左到右leftleftleftto right
从左上角到右下角left topleft topleft topto bottom right

例:

div{background: linear-gradient(to right, red, blue);}

使用角度 

语法

background:linear-gradient(angle, color1, color2,...);

角度是指水平线和渐变线之间的角度,顺时针方向计算,0deg是从下到上渐变,90deg是从左到右渐变。 

使用-webkit-linear-gradient()和-moz-linear-gradient()函数时角度是逆时针方向计算,0deg是从左到右渐变,90deg是从下到上渐变。

background:-webkit-linear-gradient(angle, color1, color2,...);/*Safari只能用这个语法*/
background:-moz-linear-gradient(angle, color1, color2,...);/*Firefox*/

例:

 

div{background: linear-gradient(135deg, red, blue);}

 重复的线性渐变

语法

background:repeating-linear-gradient(direction,color1,color2,...);

例:

div{background: repeating-linear-gradient(to right, red 10%, blue 20%);}

使用透明度

在css中使用rgba()函数来实现颜色的透明度,rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。

例:

div{
    background: linear-gradient(to right,
    rgba(255,0,0,0) 0%,
    rgba(255,0,0,0.2) 10%,
    rgba(255,0,0,0.4) 20%,
    rgba(255,0,0,0.6) 30%,
    rgba(255,0,0,0.8) 40%,
    rgba(255,0,0,1) 50%,
    rgba(255,0,0,0.8) 60%,
    rgba(255,0,0,0.6) 70%,
    rgba(255,0,0,0.4) 80%,
    rgba(255,0,0,0.2) 90%,
    rgba(255,0,0,0) 100%);
}

径向渐变

至少要定义两种颜色,也可以指定渐变的中心、形状(圆形或椭圆形)、大小。

语法

background:-webkit-radial-gradient(center,shape size,start-color,...,last-color);/*Safari Opera Firefox*/
background:-moz-radial-gradient(center,shape size,start-color,...,last-color);/*Firefox*/
background:radial-gradient(center,shape size,start-color,...,last-color);/*标准语法*/

中心的值默认为center;shape的值可以设为circle(圆)和ellipse(椭圆),默认为ellipse;size的参数可以是以下四个值:

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

例:

 

div{background: radial-gradient(circle, red 10%, blue 20% , green 70%);}

重复的径向渐变

语法

background:repeating-radial-gradient(center,shape size,start-color,...,last-color);

div{background: repeating-radial-gradient(circle, red, yellow 10%, green 20%);}

使用透明度

例:

 

 

div{background: radial-gradient(circle, rgba(255, 0, 0, 1), rgba(255, 0, 0, 0.3), rgba(255, 0, 0, 0) 90%);}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是基于OpenCV库的Python代码示例: ```python import cv2 import numpy as np # 读取两张图像 img1 = cv2.imread('image1.jpg') img2 = cv2.imread('image2.jpg') # 将两张图像转换为灰度图像 gray1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) # 创建高斯金字塔 G1 = gray1.copy() G2 = gray2.copy() gp1 = [G1] gp2 = [G2] for i in range(6): G1 = cv2.pyrDown(G1) G2 = cv2.pyrDown(G2) gp1.append(G1) gp2.append(G2) # 创建拉普拉斯金字塔 lp1 = [gp1[5]] lp2 = [gp2[5]] for i in range(5, 0, -1): G1 = cv2.pyrUp(gp1[i]) G2 = cv2.pyrUp(gp2[i]) L1 = cv2.subtract(gp1[i - 1], G1) L2 = cv2.subtract(gp2[i - 1], G2) lp1.append(L1) lp2.append(L2) # 创建掩模 mask1 = np.zeros(gray1.shape, dtype=gray1.dtype) mask1[:, :int(gray1.shape[1] / 2)] = 255 mask2 = cv2.bitwise_not(mask1) # 对两个图像的金字塔进行融合 LS = [] for l1, l2 in zip(lp1, lp2): rows, cols = l1.shape ls = cv2.add(cv2.multiply(l1, mask1), cv2.multiply(l2, mask2)) LS.append(ls) # 重建融合图像 ls_ = LS[0] for i in range(1, 6): ls_ = cv2.pyrUp(ls_) ls_ = cv2.add(ls_, LS[i]) # 最终结果 result = cv2.cvtColor(ls_, cv2.COLOR_GRAY2BGR) cv2.imshow('result', result) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这个代码示例中,我们首先读取两张要融合的图像,并将它们转换为灰度图像。然后,我们构建了这两个图像的高斯金字塔和拉普拉斯金字塔。接着,我们创建了一个掩模,用于指定两张图像在融合过程中的权重。我们对这两个图像的金字塔进行融合,并重建出最终的融合图像。最后,我们将结果转换为彩色图像,并显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值