国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

opencv(三)邊界填充、圖像融合、圖像閾值處理

這篇具有很好參考價值的文章主要介紹了opencv(三)邊界填充、圖像融合、圖像閾值處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


一、邊界填充

  • 邊界填充就是將圖片按一定的方法將圖片的四周向外填充并將圖片放大
  • 因為opencv中的顏色通道不是RGB而是BGR,所以我們要用到之前講到的分割將顏色通道重新整合成RGB后再用matplotlib庫將其畫出
import cv2
import matplotlib.pyplot as plt
import numpy as np
# 導(dǎo)入圖片
img = cv2.imread('cat.jpg')
img = img[200:600,200:700]
b,g,r = cv2.split(img)
img = cv2.merge((r,g,b))
top_size,bottom_size,left_size,right_size = (50,50,50,50)
# 邊界填充
replicate = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT)
# 分別展示看到不同的效果
plt.subplot(231),plt.imshow(img,'gray'),plt.title('ORIGINAL')	#原圖
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')
plt.show()
  • BORDER_REPLICATE : 復(fù)制法,也就是復(fù)制最邊緣像素
  • BORDER_REFLECT:反射法,對感興趣的圖像中的像素在兩邊進行復(fù)制
  • BORDER_REFLECT_101:反射法,也就是儀最邊緣像素為軸,對稱
  • BORDER_WRAP:外包裝法
  • BORDER_CONSTANT:常量法,常數(shù)值填充

各個方法效果展示如下:

opencv(三)邊界填充、圖像融合、圖像閾值處理,opencv入門,opencv,人工智能,計算機視覺,python

二、圖像的融合

  • cv2.resize(img,(長,高))
  • cv2.addWeighted(img1,alpha1,img2,alpha2,b)
    • alpha是權(quán)重,b為偏置項
    • 公式為img = a1 ? * ? img1 + a2 ? * ? img2 + b
    • 形成新的圖像
  • 圖像融合時一定要保持兩張圖片的大小一樣
# 展示圖片函數(shù)
import cv2
import numpy as np
def show_img(name,img_path):
    cv2.imshow(name,img_path)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
import cv2
import matplotlib.pyplot as plt
import numpy as np
import show_img		#該包為自己寫的展示圖片功能
cat = cv2.imread('cat.jpg')
dog = cv2.imread('dog.jpg')
# print(cat+dog)	#查看兩張圖片的大?。ú灰粯哟髸箦e提示)
cat = cv2.resize(cat,(889,500))	#調(diào)整兩張圖片大小一致(將大圖片改小)
# 圖像融合
add_img = cv2.addWeighted(cat,0.4,dog,0.6,0)
show_img.show_img('add',add_img)	#展示圖片(可自己寫展示圖片那幾行代碼)
  • 最終將貓和狗分別按一定的比例將其融合到一起。

opencv(三)邊界填充、圖像融合、圖像閾值處理,opencv入門,opencv,人工智能,計算機視覺,python文章來源地址http://www.zghlxwxcb.cn/news/detail-832947.html

三、 圖像閾值

  • ret,dst = cv2.threshold(src,thresh,maxval,type)
    • src:輸入圖,只能輸入單通道圖像,通常來說為灰度圖
    • dst:輸出圖
    • thresh:閾值
    • maxval:當(dāng)像素點超過了閾值(或者小于閾值,根據(jù)type來決定),所賦予的值
    • type:二值化操作的類型,包含一下五種類型:
      • cv2.THRESH_BINARY:超過閾值部分取maxval,否則為0
      • cv2.THRESH_BINARY_INV:上一個的反轉(zhuǎn)
      • cv2.THRESH_TRUNC:大于閾值部分設(shè)為閾值,否則不變
      • cv2.THRESH_TOZERO:大于閾值部分不改變,否則為0
      • cv2.THRESH_TOZERO_INV:上一個的反轉(zhuǎn)
import cv2
import show_img
import matplotlib.pyplot as plt
import numpy as np

cat = cv2.imread('../data/cat.jpg')
cat = cat[200:700,200:700,:]	#原圖太大了,這里只展示部分效果
cat_gray = cv2.imread('../data/cat.jpg',cv2.IMREAD_GRAYSCALE) #變成灰色圖
cat_gray = cat_gray[200:700,200:700]
# show_img.show_img('cat',cat)
#調(diào)整顏色通道
b,g,r = cv2.split(cat)
cat = cv2.merge((r,g,b))
#圖像閾值處理
ret,thresh1 = cv2.threshold(cat_gray,127,255,cv2.THRESH_BINARY)
ret,thresh2 = cv2.threshold(cat_gray,127,255,cv2.THRESH_BINARY_INV)
ret,thresh3 = cv2.threshold(cat_gray,127,255,cv2.THRESH_TRUNC)
ret,thresh4 = cv2.threshold(cat_gray,127,255,cv2.THRESH_TOZERO)
ret,thresh5 = cv2.threshold(cat_gray,127,255,cv2.THRESH_TOZERO_INV)

titles = ['Original Image','BINARY','BINARY_INV','TRUNC','TOZERO','TOZERO_INV']
images = [cat,thresh1,thresh2,thresh3,thresh4,thresh5]
# 展示不同方法進行的不同處理
for i in range(6):
    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()
  • 效果展示(別忘了0是黑255是白哦)
    opencv(三)邊界填充、圖像融合、圖像閾值處理,opencv入門,opencv,人工智能,計算機視覺,python

到了這里,關(guān)于opencv(三)邊界填充、圖像融合、圖像閾值處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • OpenCV 入門教程:全局閾值處理

    全局閾值處理是圖像處理中常用的技術(shù)之一,用于將圖像轉(zhuǎn)換為二值圖像,從而提取感興趣的目標(biāo)區(qū)域。在 OpenCV 中,全局閾值處理可以通過簡單的像素比較來實現(xiàn)。本文將以全局閾值處理為中心,為你介紹使用 OpenCV 進行二值圖像處理的基本步驟和實例。 ???? ?? ??

    2024年02月13日
    瀏覽(23)
  • OpenCV入門系列2:圖像疊加、填充和腐蝕

    OpenCV入門系列2:圖像疊加、填充和腐蝕

    在系列1中已經(jīng)初步了解圖像的組成并通過OpenCV函數(shù)對圖片的組成進行了驗證,接下來將學(xué)習(xí)圖像基本的操作函數(shù),包括圖像的疊加、填充和腐蝕。 已知圖像是由其像素點顏色通道的數(shù)據(jù)組成,而圖像之所以不同,就是因為像素點內(nèi)數(shù)據(jù)不同。因此,若要將兩圖像進行疊加,

    2024年02月05日
    瀏覽(21)
  • OPENCV C++圖像提取,圖像處理,roi,閾值分割,連通區(qū)域篩選,邊緣檢測(以箱子邊緣框選為例)

    OPENCV C++圖像提取,圖像處理,roi,閾值分割,連通區(qū)域篩選,邊緣檢測(以箱子邊緣框選為例)

    本周有機會接觸了一點opnev, 在此做一下記錄, 最終以 框選出下圖箱子為目的( 圖片箱子為相機實拍結(jié)果,曝光有點低,會有億點點暗 ), 本文會拆解步驟并附上圖片, 完整的源碼在最后.PS: 本文參考了好多大佬分享的理論知識, 在此先感謝大佬的分享~~ 首先是梳理一下流程, 下圖是

    2024年02月07日
    瀏覽(27)
  • 我在Vscode學(xué)OpenCV 圖像處理一(閾值處理、形態(tài)學(xué)操作【連通性,腐蝕和膨脹,開閉運算,禮帽和黑帽,內(nèi)核】)

    我在Vscode學(xué)OpenCV 圖像處理一(閾值處理、形態(tài)學(xué)操作【連通性,腐蝕和膨脹,開閉運算,禮帽和黑帽,內(nèi)核】)

    例如,設(shè)定閾值為127,然后: ? 將圖像內(nèi)所有像素值大于 127 的像素點的值設(shè)為 255。 ? 將圖像內(nèi)所有像素值小于或等于 127 的像素點的值設(shè)為 0。 cv2.threshold() 和 cv2.adaptiveThreshold() 是 OpenCV 中用于實現(xiàn)閾值處理的兩個函數(shù),它們之間有以下區(qū)別: 1.1.1. cv2.threshold(): 這個函數(shù)

    2024年02月05日
    瀏覽(32)
  • 數(shù)字圖像處理 基于OpenCV的景深融合算法

    ????????景深 合成是對顯微鏡頭連續(xù)變焦時采集的非平面物體的圖像序列進行分析,提取序列里每一幀圖像中聚焦相對清晰的區(qū)域,然后對這些區(qū)域按其位置進行聚焦清晰度競爭、圖像 融合 ,形成一幅新的各區(qū)域都清晰的全 景深 的圖像。 ? ? ? ? 這里算法的前提是圖像

    2024年02月14日
    瀏覽(25)
  • DrGraph原理示教 - OpenCV 4 功能 - 邊界填充

    DrGraph原理示教 - OpenCV 4 功能 - 邊界填充

    今天簡單來看一下OpenCV中的邊界填充 這里的核心就是理解borderType,具體就是 具體的理解: 其實不用記,實驗一下就了解 OpenCV 4 功能 - 邊界填充 發(fā)現(xiàn)兩個問題: 圖像寬度不為4的倍數(shù)時,畫出會有錯位現(xiàn)象 選擇的顏色,B與R通道反了 這些問題,OpenCV肯定是不會改的,那就自

    2024年01月22日
    瀏覽(16)
  • Opencv C++ SIFT特征提取(單圖像,多圖像)+如何設(shè)置閾值+如何對文件夾進行批處理+如何設(shè)置掩膜裁剪影像

    Opencv C++ SIFT特征提?。▎螆D像,多圖像)+如何設(shè)置閾值+如何對文件夾進行批處理+如何設(shè)置掩膜裁剪影像

    SIFT(Scale-Invariant Feature Transform)是一種用于圖像處理和計算機視覺的特征提取算法。由David Lowe于1999年首次提出,它是一種非常有效的局部特征描述符,具有尺度不變性、旋轉(zhuǎn)不變性和對部分遮擋的魯棒性。 SIFT特征提取的主要步驟包括: 尺度空間極值檢測(Scale-Space Extrem

    2024年01月19日
    瀏覽(29)
  • C++&Python&C# 三語言O(shè)penCV從零開發(fā)(6):邊界填充+Csharp調(diào)用Python matplotlib代碼

    C++&Python&C# 三語言O(shè)penCV從零開發(fā)(6):邊界填充+Csharp調(diào)用Python matplotlib代碼

    C++PythonCsharp in OpenCV 專欄 【2022B站最好的OpenCV課程推薦】OpenCV從入門到實戰(zhàn) 全套課程(附帶課程課件資料+課件筆記) 今天來接著學(xué)習(xí)OpenCV,現(xiàn)在主要是以Python代碼為主了,所以先實現(xiàn)Python,在用C++/Csharp重現(xiàn)一遍。 邊界填充就是向外填充圖片信息,將圖片擴大。填充分為上下

    2024年01月23日
    瀏覽(33)
  • opencv(20) 圖像閾值(二值化)

    opencv(20) 圖像閾值(二值化)

    二值化核心思想,設(shè)閾值,大于閾值的為0(黑色)或 255(白色),使圖像稱為黑白圖。 閾值可固定,也可以自適應(yīng)閾值。 自適應(yīng)閾值一般為一點像素與這點為中序的區(qū)域像素平均值或者高斯分布加權(quán)和的比較,其中可以設(shè)置一個差值也可以不設(shè)置。 圖像的閾值化旨在提取

    2024年02月02日
    瀏覽(24)
  • OpenCV閾值處理(threshold函數(shù)、自適應(yīng)閾值處理、Otsu處理)

    OpenCV閾值處理(threshold函數(shù)、自適應(yīng)閾值處理、Otsu處理)

    目錄 閾值處理 一.threshold函數(shù) 1.二值化閾值處理(cv2.THRESH_BINARY) 2.反二值化閾值處理( cv2.THRESH_BINARY_INV) 3.截斷閾值化處理(cv2.THRESH_TRUNC) 4.超閾值零處理(cv2.THRESH_TOZERO_INV) 5.低閾值零處理(cv2.THRESH_TOZERO) ?二.自適應(yīng)閾值處理 ?三.Otsu處理 閾值處理是指剔除圖像內(nèi)像素

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包