日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机视觉——图像预处理及边缘检测

發布時間:2024/7/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机视觉——图像预处理及边缘检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.為什么要進行圖像預處理?

\qquad當對圖像進行邊緣、輪廓的檢測時,圖像噪聲會對檢測產生不利影響,并且為了幫助模型專注于一般細節并獲得更高的準確度,我們需要對圖像進行預處理。
\qquad預處理的內容有去除噪聲,控制像素值得強度,一般的處理技巧有模糊(Blurring)、閾值(thresholding)、形態轉換(morphological transformation)等。

2.模糊

\qquad模糊的主要目的是為了降噪,比如當邊緣檢測算法應用于高分辨率的圖像時,會獲得很多我們并不感興趣的內容,這時候我們需要模糊進行降噪。當對圖像進行模糊處理時,需要尋找合適的模糊量,模糊量太少,則有太多噪聲;模糊量太多,會丟失我們需要的數據。
\qquadOpenCV中常用四種模糊的技術:平均模糊、高斯模糊、中值模糊和雙邊濾波模糊。
\qquad這四種模糊技術的原理相同:使用濾波器(內核),對圖像進行卷積運算。但是各個模糊技術之間使用的濾波器不同,比如平均模糊,首先計算內核區域下的平均值;然后把平均值替換內核區域的中心值。當內核區域變大時,圖像會更模糊。
\qquad為了驗證kernel區域越大,圖像越模糊。我們設定當kernel的大小為5×\times× 5,11×\times× 11 , 15×\times× 15對圖像進行卷積運算,然后比較各個圖像的模糊程度。

import cv2 import matplotlib.pyplot as plt#讀取圖像,并將圖像矩陣修改為RGB顏色模式 img = cv2.imread('../animal.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#標題中文顯示設置 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False#繪制四張圖,依次為原圖,內核大小為5*5,11*11,15*15 #原圖 plt.subplot(221) plt.imshow(img) plt.title("原圖")#內核大小為5*5 plt.subplot(222) img_blurred = cv2.blur(img,ksize=(5,5)) plt.imshow(img_blurred) plt.title("kernel 5*5")#內核大小為11*11 plt.subplot(223) img_blurred = cv2.blur(img,ksize=(11,11)) plt.imshow(img_blurred) plt.title("kernel 11*11")#內核大小為15*15 plt.subplot(224) img_blurred = cv2.blur(img,ksize=(15,15)) plt.imshow(img_blurred) plt.title("kernel 15*15")plt.show()

\qquad運行結果:
\qquad高斯模糊,高斯模糊的kernel值是由高斯函數生成,即內核值服從高斯分布。雙邊濾波模糊,具有去除噪音,同時保持邊緣清晰。把四種模糊技術進行對比。

import cv2 import matplotlib.pyplot as plt#讀取圖像,并將圖像矩陣修改為RGB顏色模式 img = cv2.imread('F:/animal.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#標題中文顯示設置 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False#平均模糊 plt.subplot(221) img_0 = cv2.blur(img, ksize = (7, 7)) plt.imshow(img_0) plt.title("平均濾波")#高斯模糊 plt.subplot(222) img_1 = cv2.GaussianBlur(img, ksize = (7, 7), sigmaX = 0) plt.imshow(img_1) plt.title("高斯模糊")#中值模糊 plt.subplot(223) img_2 = cv2.medianBlur(img, 7) plt.imshow(img_0) plt.title("中值模糊")#雙邊濾波模糊 plt.subplot(224) img_3 = cv2.bilateralFilter(img, 7, sigmaSpace = 75, sigmaColor =75) plt.imshow(img_0) plt.title("雙邊濾波模糊")plt.show()

\qquad運行結果:

3.閾值

\qquad閾值處理,就是將圖像轉換為二進制圖像。有五種不同的閾值處理方式:二進制,二進制的逆,閾值為零,閾值到零的倒數和閾值截斷。比較五種不同的閾值處理。

import cv2 import matplotlib.pyplot as plt#讀取圖像,并將圖像矩陣修改為RGB顏色模式 img = cv2.imread('F:/animal.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#標題中文顯示設置 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = Falseplt.subplot(231) plt.imshow(img) plt.title("原圖")plt.subplot(232) _, thresh_0 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) plt.imshow(thresh_0) plt.title("二進制")plt.subplot(233) _, thresh_1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY_INV) plt.imshow(thresh_1) plt.title("二進制的逆")plt.subplot(234) _, thresh_2 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO) plt.imshow(thresh_2) plt.title("閾值為零")plt.subplot(235) _, thresh_3 = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV) plt.imshow(thresh_3) plt.title("閾值到零的倒數")plt.subplot(236) _, thresh_4 = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC) plt.imshow(thresh_4) plt.title("閾值截斷")plt.show()

\qquad運行結果:

4.形態轉換

\qquad形態轉換,通過過濾來處理對象。過濾器的形狀可以為矩形(rectangle),橢圓形(ellipse),十字形(cross)。形態轉換的技術有:侵蝕,膨脹等。下面以侵蝕形態轉換為例,比較三種形狀過濾器的效果。

import cv2 import matplotlib.pyplot as plt import numpy as np#讀取圖像,并將圖像矩陣修改為RGB顏色模式 img = cv2.imread('F:/animal.jpg') img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#標題中文顯示設置 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False#原圖 plt.subplot(221) plt.imshow(img) plt.title("原圖")#矩形 plt.subplot(222) kernel_0 = np.ones((9, 9)) img1 = cv2.erode(img, kernel_0, iterations = 3) plt.imshow(img1) plt.title("矩形")#橢圓 plt.subplot(223) kernel_1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 9)) img2 = cv2.erode(img,kernel_1,iterations=3) plt.imshow(img2) plt.title("橢圓")#十字形 plt.subplot(224) kernel_2 = cv2.getStructuringElement(cv2.MORPH_CROSS, (9, 9)) img3 = cv2.erode(img,kernel_2,iterations=3) plt.imshow(img3) plt.title("十字形")plt.show()

\qquad運行結果:

5.邊緣檢測

\qquad使用cv2.Canny()函數進行邊緣檢測。

import cv2 import matplotlib.pyplot as plt#讀取圖像 img = cv2.imread('F:/dog.jpg') img_color = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#標題中文顯示設置 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = Falseplt.subplot(221) plt.imshow(img_color) plt.title("原圖")plt.subplot(222) canny1 = cv2.Canny(img_gray, 50, 150) plt.imshow(canny1,cmap='gray')plt.subplot(223) canny2 = cv2.Canny(img_gray, 100, 200) plt.imshow(canny2,cmap='gray')plt.subplot(224) canny3 = cv2.Canny(img_gray, 150, 250) plt.imshow(canny3,cmap='gray')plt.show()

\qquad運行結果:

參考鏈接:Basic Operations on Images
\qquad \qquadMorphology
\qquad \qquadDrawing Functions in OpenCV

總結

以上是生活随笔為你收集整理的计算机视觉——图像预处理及边缘检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美 国产 日本 | 污片免费网站 | 欧美另类亚洲 | 性一交一黄一片 | 干爹你真棒插曲免费 | 欧美99| 日本高清免费看 | 国产高清不卡一区 | 香蕉av网站| 国产色91 | 成年女人18级毛片毛片免费 | 久久久久久一 | 亚洲大色网 | 女女综合网 | 欧美日韩不卡视频 | 奇米狠狠777 | av字幕在线| 久久精品欧美日韩精品 | 韩国91视频 | 国产精品播放 | 国内自拍欧美 | 国产经典一区二区三区 | 三级黄色小视频 | 综合久久网 | 美女黄18以下禁止观看 | 日本精品免费一区二区三区 | 亚洲经典自拍 | 亚洲综合视频在线播放 | 深夜天堂 | 1级片在线观看 | 亚洲激情图片 | 色呦网站 | 成人动漫久久 | 亚洲高清无码久久 | 免费一级淫片aaa片毛片a级 | 国产中文欧美日韩在线 | 青娱乐最新地址 | 一区二区三区国产精品视频 | 少妇高潮灌满白浆毛片免费看 | 国产亚洲精品女人久久久久久 | 91精品人妻一区二区三区果冻 | 国产精品91一区二区 | 在线sese| 日韩av在线免费看 | 成人123区| 疯狂做爰的爽文多肉小说王爷 | 国产人妖在线观看 | 激情图片在线观看 | 黄色一级视频网站 | 欧美××××黑人××性爽 | 亚洲色图21p | www.成人在线观看 | 国产精品一区二区视频 | 日韩伊人久久 | 天堂影视av | 欧美一级网 | 综合在线一区 | 欧亚av| 麻豆激情网 | 久久综合高清 | 亚洲色图国产精品 | 日韩新片王网 | 日本精品人妻无码免费大全 | 片黄在线观看 | 中文字幕不卡在线观看 | 婷婷久久伊人 | 69精品无码成人久久久久久 | 黄色片在线免费观看视频 | 夜色成人网 | 在线看片网站 | 国产在线欧美 | 国产免费看 | 亚洲影院中文字幕 | 自拍毛片 | 久久精品66| 麻豆md0034在线观看 | 99久久久无码国产精品6 | 免费久久av| 善良的公与媳hd中文字 | www国产亚洲精品久久网站 | 黄网免费观看 | 亚洲美女免费视频 | 伊人av在线播放 | 国产情侣啪啪 | www国产| 黑人玩弄人妻一区二区三区四 | 午夜精品久久久久久久久久久久久蜜桃 | 免费人成在线观看 | 毛片视频软件 | 国产精品精品久久久 | www.99re7.com| 国产成人97精品免费看片 | 96日本xxxxxⅹxxx17 | 精品人妻一区二区三区日产乱码 | 爆操日本美女 | 国产成人综合一区二区三区 | 美女扒开内裤让男人桶 | 男女涩涩视频 | 久久午夜夜伦鲁鲁片 |