欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python opencv 圖像邊框(填充)添加及圖像混合的實(shí)現(xiàn)方法(末尾實(shí)現(xiàn)類似幻燈片漸變的效果)

 更新時(shí)間:2020年03月09日 11:44:37   作者:筆岸柳影  
這篇文章主要介紹了python opencv 圖像邊框(填充)添加及圖像混合(末尾實(shí)現(xiàn)類似幻燈片漸變的效果),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

圖像邊框的實(shí)現(xiàn)

圖像邊框設(shè)計(jì)的主要函數(shù)

cv.copyMakeBorder()——實(shí)現(xiàn)邊框填充
主要參數(shù)如下:

  • 參數(shù)一:源圖像——如:讀取的img
  • 參數(shù)二——參數(shù)五分別是:上下左右邊的寬度——單位:像素
  • 參數(shù)六:邊框類型:
  • cv.BORDER_CONSTANT——cv.BORDER_REPLICATE——cv.BORDER_REFLECT——cv.BORDER_WRAP——cv.BORDER_REFLECT_101——cv.BORDER_TRANSPARENT——cv.BORDER_REFLECT101——cv.BORDER_DEFAULT——cv.BORDER_ISOLATED
  • 參數(shù)七——只在邊框類型選擇borderType == BORDER_CONSTANT,才設(shè)置,意為邊框值

邊框類型的說(shuō)明:

  • BORDER_CONSTANT:意為添加指定顏色的邊框——由value值確定:為list
  • 其它參數(shù):(可根據(jù)需要調(diào)制,不過(guò)一般前兩個(gè)用的多一些)

代碼實(shí)例

import cv2 as cv
import numpy as np
if __name__ == "__main__":
 img = cv.imread('./imag_in_save/open_class.png')
 cv.namedWindow('imag', cv.WINDOW_NORMAL)
 cv.resizeWindow('imag', 500, 500)
 img = cv.copyMakeBorder(img, 20, 20, 20, 20, cv.BORDER_CONSTANT, value=[2, 83, 13]) # 添加邊框
 cv.imshow('imag', img)
 cv.waitKey(0)
 cv.destroyAllWindows()

效果

在這里插入圖片描述

圖像混合的實(shí)現(xiàn)

圖像混合實(shí)現(xiàn)的主要函數(shù)

cv.addWeighted()——實(shí)現(xiàn)圖像的混合
它的工作原理采用的是一個(gè)簡(jiǎn)單權(quán)重公式:g(x)=(1−α)f0(x)+αf1(x)

  • 第一個(gè)參數(shù)為一張圖象,緊跟著第二個(gè)參數(shù)為第一張圖片的權(quán)重(0~1)也就是公式里的(1 - α)
  • 第三個(gè)參數(shù)為另一張需要混合的圖片,同樣的,第四個(gè)參數(shù)為這張圖片的權(quán)重,也就是公式里的(α)
  • 至于第五個(gè)參數(shù):每個(gè)對(duì)應(yīng)標(biāo)量的和值——可以設(shè)置混合的高光
  • 其它兩個(gè)參數(shù):(最后的一個(gè)參數(shù)單獨(dú)用的不是很多,在一些其他處理中用的比較多)
  • dst 輸出數(shù)組,其大小和通道數(shù)與輸入數(shù)組相同(我們一般通過(guò)直接返回得到~)
  • dtype 輸出數(shù)組的可選深度;當(dāng)兩個(gè)輸入數(shù)組的深度相同時(shí),可以將dtype設(shè)置為-1,這等效于src1.depth()

代碼實(shí)例

import cv2 as cv
import numpy as np


if __name__ == "__main__":
 img1 = cv.imread(r'./2.png', 1) # 讀取彩色圖片
 img2 = cv.imread(r'./3.png', 1)
 cv.namedWindow('imag', cv.WINDOW_NORMAL) # 窗體
 img1 = img1[0: 200, 0: 400] # 截取圖像的指定部分——因?yàn)閳D像混合需要等大的圖像
 img2 = img2[0: 200, 0: 400]
 img = cv.addWeighted(img1, 0.7, img2, 0.3, 0) # 混合圖片——根據(jù)權(quán)重

 while True:
 cv.imshow('imag', img) # 顯示當(dāng)前序列號(hào)圖片
 k = cv.waitKey(0) & 0xFF
 if k == 27:
  break
 cv.destroyAllWindows()

效果

在這里插入圖片描述

小練習(xí)(產(chǎn)生類似幻燈片漸變的效果)

主要思路

  • 首先準(zhǔn)備好一系列等大的圖片或者截取一系列相同大小的圖片區(qū)域作為我們的圖像數(shù)據(jù)
  • 然后將圖像信息,分別拼接到一個(gè)list列表中
  • 然后,實(shí)現(xiàn)一張一張圖片的顯示,在交換的間隙,實(shí)現(xiàn)漸變的效果——也就是圖像混合。
  • 然后就可以欣賞了——不過(guò)效果的話,主要看設(shè)置的參數(shù)吧(當(dāng)然因?yàn)闆](méi)有渲染,可能還是有些僵硬)。

代碼示例

我把主要注釋放在代碼中,邊看邊理解應(yīng)該不難~

import cv2 as cv
import numpy as np

if __name__ == "__main__":
 img_list = [] # 創(chuàng)建一個(gè)空序列裝準(zhǔn)備顯示的一系列圖片
 counts = 0 # 顯示圖片的序號(hào)
 cv.namedWindow('imag', cv.WINDOW_NORMAL) # 窗體
 cv.resizeWindow('imag', 500, 500)
 for i in range(2, 7): # 遍歷圖片,憑借到空數(shù)組中——一共5張
 img = cv.imread(f'./imag_in_save/scr/{i}.png') # 用f""實(shí)現(xiàn)參數(shù)傳入
 img = img[0: 200, 0: 400] # 截取圖像的指定部分——因?yàn)閳D像混合需要等大的圖像
 img_list.append(img) # 實(shí)現(xiàn)圖片添加
 while True:
 cv.imshow('imag', img_list[counts]) # 顯示當(dāng)前序列號(hào)圖片
 k = cv.waitKey(2000) & 0xFF
 counts += 1 # 循環(huán)下一張圖片——0,1,2,3,4有效
 if counts == 5: # 循環(huán)到最后一張圖片后返回到第一張圖片
  counts = 0
 for i in range(0, 10):
  k_f = cv.addWeighted(img_list[counts - 1], 1 - (i * 0.1), img_list[counts], i * 0.1, 0) # 做類似漸變的圖像合成
  # 實(shí)現(xiàn)兩張(當(dāng)前圖片和接下來(lái)顯示的圖片)圖片,不同權(quán)重的混合——由于照片權(quán)重改變來(lái)實(shí)現(xiàn)漸變
  cv.imshow('imag', k_f) # 顯示混合的圖片
  k = cv.waitKey(120) & 0xFF # 延時(shí)和按鍵讀取
  if k == 27: # ESC鍵
  break
 if k == 27:
  break
 cv.destroyAllWindows()

效果(圖片可能不是很明顯,如有需要可以自己添置幾張圖片實(shí)現(xiàn)看看)

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

總結(jié)

到此這篇關(guān)于python opencv 圖像邊框(填充)添加及圖像混合(末尾實(shí)現(xiàn)類似幻燈片漸變的效果)的文章就介紹到這了,更多相關(guān)opencv 圖像邊框填充混合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python查找算法之折半查找算法的實(shí)現(xiàn)

    Python查找算法之折半查找算法的實(shí)現(xiàn)

    這篇文章主要介紹了Python查找算法之折半查找算法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 解決使用PyCharm時(shí)無(wú)法啟動(dòng)控制臺(tái)的問(wèn)題

    解決使用PyCharm時(shí)無(wú)法啟動(dòng)控制臺(tái)的問(wèn)題

    今天小編就為大家分享一篇解決使用PyCharm時(shí)無(wú)法啟動(dòng)控制臺(tái)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python多線程 Queue 模塊常見用法

    Python多線程 Queue 模塊常見用法

    Python的Queue模塊提供一種適用于多線程編程的FIFO實(shí)現(xiàn)。它可用于在生產(chǎn)者(producer)和消費(fèi)者(consumer)之間線程安全(thread-safe)地傳遞消息或其它數(shù)據(jù),因此多個(gè)線程可以共用同一個(gè)Queue實(shí)例。Queue的大小(元素的個(gè)數(shù))可用來(lái)限制內(nèi)存的使用
    2021-07-07
  • 探索Python中zoneinfo模塊處理時(shí)區(qū)操作實(shí)例

    探索Python中zoneinfo模塊處理時(shí)區(qū)操作實(shí)例

    這篇文章主要為大家介紹了探索Python中zoneinfo模塊的用法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python3.9.1中使用split()的處理方法(推薦)

    Python3.9.1中使用split()的處理方法(推薦)

    這篇文章主要介紹了Python3.9.1中使用split()的處理方法(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python中類的創(chuàng)建和實(shí)例化操作示例

    Python中類的創(chuàng)建和實(shí)例化操作示例

    這篇文章主要介紹了Python中類的創(chuàng)建和實(shí)例化操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的定義、實(shí)例化、方法調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 6個(gè)Python辦公黑科技,助你提升工作效率

    6個(gè)Python辦公黑科技,助你提升工作效率

    這篇文章主要介紹了Python辦公黑科技,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-08-08
  • Python googletrans庫(kù)使用示例詳解

    Python googletrans庫(kù)使用示例詳解

    googletrans是一個(gè)基于谷歌翻譯API的Python庫(kù),支持多種語(yǔ)言的自動(dòng)檢測(cè)和翻譯,提供了translate和detect方法,用于翻譯文本和檢測(cè)文本語(yǔ)言,通過(guò)簡(jiǎn)單的命令即可安裝使用,適合需要實(shí)現(xiàn)多語(yǔ)言翻譯功能的開發(fā)者
    2024-09-09
  • pandas選擇或添加列生成新的DataFrame操作示例

    pandas選擇或添加列生成新的DataFrame操作示例

    這篇文章主要為大家介紹了pandas選擇或添加列生成新的DataFrame實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python判斷Abundant Number的方法

    Python判斷Abundant Number的方法

    這篇文章主要介紹了Python判斷Abundant Number的方法,實(shí)例分析了Python針對(duì)盈數(shù)的判斷技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論