最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?OpenCV實(shí)現(xiàn)圖片預(yù)處理的方法詳解

 更新時(shí)間:2022年09月28日 14:16:39   作者:錦鯉AI幸運(yùn)  
這篇文章主要為大家詳細(xì)介紹了Python?OpenCV實(shí)現(xiàn)圖片預(yù)處理的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下

一、圖片預(yù)處理

1.1 邊界填充(padding)

方法 : cv2.copyMakeBorder

BORDER_REPLICATE:復(fù)制法,也就是復(fù)制最邊緣像素。

BORDER_REFLECT:反射法,對(duì)感興趣的圖像中的像素在兩邊進(jìn)行復(fù)制例如:fedcba|abcdefgh|hgfedcb

BORDER_REFLECT_101:反射法,也就是以最邊緣像素為軸,對(duì)稱,gfedcb|abcdefgh|gfedcba

BORDER_WRAP:外包裝法cdefgh|abcdefgh|abcdefg

BORDER_CONSTANT:常量法,常數(shù)值填充。

import cv2
import matplotlib.pyplot as plt

img = cv2.imread('cat.png')
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

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, cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, value=0)

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()

其效果如下:

cat.png原圖下載:

dog.png原圖下載:

1.2 融合圖片(mixup)

方法 : cv2.addWeighted(src1, alpha, src2, beta, gamma)

  • src1, src2:需要融合相加的兩副大小和通道數(shù)相等的圖像
  • alpha:src1的權(quán)重
  • beta:src2的權(quán)重
  • gamma:gamma修正系數(shù),不需要修正設(shè)置為0
import cv2
import matplotlib.pyplot as plt

img_cat = cv2.imread('cat.png')
img_cat = cv2.cvtColor(img_cat, cv2.COLOR_RGB2BGR)
cat_shape = [img_cat.shape[1], img_cat.shape[0]]  # 因?yàn)閏v2讀取通道數(shù)是最后一位

img_dog = cv2.imread('dog.png')
img_dog = cv2.cvtColor(img_dog, cv2.COLOR_RGB2BGR)
img_dog = cv2.resize(img_dog, cat_shape)

mixup = cv2.addWeighted(img_cat, 0.55, img_dog, 0.45, 0)

plt.imshow(mixup)
plt.show()

其效果如下:

1.3 圖像閾值

ret, dst = cv2.threshold(src, thresh, maxval, type)

  • src: 輸入圖,只能輸入單通道圖像,通常來(lái)說(shuō)為灰度圖
  • dst: 輸出圖
  • thresh: 閾值
  • maxval: 當(dāng)像素值超過(guò)了閾值(或者小于閾值,根據(jù)type來(lái)決定),所賦予的值
  • type:二值化操作的類型,包含以下5種類型:
  • cv2.THRESH_BINARY 超過(guò)閾值部分取maxval(最大值),否則取0
  • cv2.THRESH_BINARY_INV THRESH_BINARY的反轉(zhuǎn)
  • cv2.THRESH_TRUNC 大于閾值部分設(shè)為閾值,否則不變
  • cv2.THRESH_TOZERO 大于閾值部分不改變,否則設(shè)為0
  • cv2.THRESH_TOZERO_INV THRESH_TOZERO的反轉(zhuǎn)

其效果如下:

二、濾波器

2.1 均值濾波器

import cv2
import numpy as np

img = cv2.imread('lenaNoise.png')

cv2.imshow('blur', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 均值濾波
# 簡(jiǎn)單的平均卷積操作
blur = cv2.blur(img, (3, 3))

lenaNoise.png原圖展示:

白色為圖片,黃色區(qū)域?yàn)闉V波器窗口:

2.2 方框?yàn)V波器

# 方框?yàn)V波
# 基本和均值一樣,可以選擇歸一化
box = cv2.boxFilter(img, -1, (3, 3), normalize=True)

總結(jié): 均值濾波器是取濾波器中的平均值,然后繼續(xù)滑動(dòng)下一個(gè)窗口。

2.3 高斯濾波器

# 高斯濾波
# 高斯模糊的卷積核里的數(shù)值是滿足高斯分布,相當(dāng)于更重視中間的
aussian = cv2.GaussianBlur(img, (5, 5), 1)

總結(jié): 高斯濾波器是濾波器窗口中離中心值近的權(quán)值大,用高斯分布增加一個(gè)權(quán)重,然后繼續(xù)滑動(dòng)下一個(gè)窗口。

2.4 中值濾波

# 中值濾波
# 相當(dāng)于用中值代替
median = cv2.medianBlur(img, 5)  # 中值濾波

總結(jié): 中值濾波器是濾波器窗口中所有數(shù)字的中間值,如黃色框中9個(gè)數(shù)的中間值為113,然后繼續(xù)滑動(dòng)下一個(gè)窗口。

2.5 所有濾波器按照上述順序輸出

# 展示所有的
res = np.hstack((blur, aussian, median))
# print (res)
cv2.imshow('median vs average', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

總結(jié):中值濾波器的圖效果最好,可以解決一些椒鹽噪聲。

以上就是Python OpenCV實(shí)現(xiàn)圖片預(yù)處理的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV圖片預(yù)處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 示例詳解python中的排序

    示例詳解python中的排序

    本文詳細(xì)介紹了如何使用Python實(shí)現(xiàn)兩組數(shù)據(jù)的縱向排序,包括開(kāi)發(fā)思想、開(kāi)發(fā)流程和代碼示例,感興趣的朋友一起看看吧
    2024-12-12
  • Python讀取properties配置文件操作示例

    Python讀取properties配置文件操作示例

    這篇文章主要介紹了Python讀取properties配置文件操作,結(jié)合實(shí)例形式分析了Python讀取properties配置文件操作中增加對(duì)鍵值對(duì)支持與使用的相關(guān)技巧,需要的朋友可以參考下
    2018-03-03
  • 如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤

    如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤

    OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。這篇文章主要介紹了如何用OpenCV -python3實(shí)現(xiàn)視頻物體追蹤,需要的朋友可以參考下
    2019-12-12
  • python2.7刪除文件夾和刪除文件代碼實(shí)例

    python2.7刪除文件夾和刪除文件代碼實(shí)例

    python刪除文件夾t和刪除文件代碼實(shí)例,大家參考使用吧,運(yùn)行環(huán)境是python2.7
    2013-12-12
  • python抓取最新博客內(nèi)容并生成Rss

    python抓取最新博客內(nèi)容并生成Rss

    本文給大家分享的是使用python抓取最新博客內(nèi)容并生成Rss的代碼,主要用到了PyRSS2Gen方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-05-05
  • PyQt5內(nèi)嵌瀏覽器注入JavaScript腳本實(shí)現(xiàn)自動(dòng)化操作的代碼實(shí)例

    PyQt5內(nèi)嵌瀏覽器注入JavaScript腳本實(shí)現(xiàn)自動(dòng)化操作的代碼實(shí)例

    今天小編就為大家分享一篇關(guān)于PyQt5內(nèi)嵌瀏覽器注入JavaScript腳本實(shí)現(xiàn)自動(dòng)化操作的代碼實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • python爬蟲(chóng)控制aiohttp并發(fā)數(shù)量方式

    python爬蟲(chóng)控制aiohttp并發(fā)數(shù)量方式

    這篇文章主要介紹了python爬蟲(chóng)控制aiohttp并發(fā)數(shù)量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • python 實(shí)現(xiàn)打印掃描效果詳情

    python 實(shí)現(xiàn)打印掃描效果詳情

    這篇文章主要介紹了python 實(shí)現(xiàn)打印掃描效果詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python爬蟲(chóng)中的url下載器用法詳解

    python爬蟲(chóng)中的url下載器用法詳解

    在本篇內(nèi)容里小編給各位整理的是一篇關(guān)于python爬蟲(chóng)中的url下載器用法詳解內(nèi)容,需要的朋友們參考下。
    2020-11-11
  • YOLO?v5引入解耦頭部完整步驟

    YOLO?v5引入解耦頭部完整步驟

    網(wǎng)上有很多添加解耦頭的博客,在此記錄下我使用解耦頭對(duì)YOLOv5改進(jìn),下面這篇文章主要給大家介紹了關(guān)于YOLO?v5引入解耦頭部的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評(píng)論

竹山县| 浦江县| 达日县| 华亭县| 乐安县| 丹凤县| 宿迁市| 桃园市| 景宁| 随州市| 霍城县| 仲巴县| 荔浦县| 象州县| 茂名市| 栖霞市| 禄劝| 古蔺县| 平山县| 濉溪县| 南城县| 昆山市| 永康市| 米林县| 错那县| 五峰| 阿坝县| 佛山市| 翁源县| 龙川县| 浪卡子县| 宁化县| 榆林市| 西华县| 泰宁县| 隆德县| 华容县| 郧西县| 孟津县| 同德县| 永修县|