1. 程式人生 > >python實現opencv學習二十一:影象的開閉操作

python實現opencv學習二十一:影象的開閉操作

作用:刪除影象的小的干擾項

原始碼如下:

# -*- coding=GBK -*-
import cv2 as cv


#影象的開閉操作
def open_image(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
    cv.imshow("二值化", binary)
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
    binary = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
    cv.imshow("開操作", binary)


def close_image(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 5))
    binary = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel)
    cv.imshow("閉操作", binary)


src = cv.imread("C://1.jpg")
cv.imshow("原來", src)
open_image(src)
close_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

執行結果如下:


相關推薦

python實現opencv學習影象操作

作用:刪除影象的小的干擾項原始碼如下:# -*- coding=GBK -*- import cv2 as cv #影象的開閉操作 def open_image(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY

opencv學習()之中值濾波medianBlur

中值濾波是一種典型的非線性濾波,是基於排序統計理論的一種能夠有效抑制噪聲的非線性訊號處理技術,基本思想是用畫素點鄰域灰度值的中值來代替該畫素點的灰度值,讓周圍的畫素值接近真實的值從而消除孤立的噪聲點。該方法在取出脈衝噪聲、椒鹽噪聲的同時能保留影象的邊緣細節。這些

OpenCV學習findcontours以及drawcontours練習

1. void findContours1.1 概述void findContours//提取輪廓,用於提取影象的輪廓(InputOutputArray image,//輸入影象,必須是8位單通道影象,並且應該轉化成二值的OutputArrayOfArrays contour

Tensorflow深度學習LeNet的實現(CIFAR-10資料集)

一、LeNet的簡介 LeNet是一個用來識別手寫數字的最經典的卷積神經網路,是Yann LeCun在1998年設計並提出的。Lenet的網路結構規模較小,但包含了卷積層、池化層、全連線層,他們都構成了現代CNN的基本元件。 LeNet包含輸入層在內共有

python實現opencv學習安裝、環境配置、工具

一:python的下載、安裝、配置以python2.7.9為例二:安裝pip進入Python安裝目錄下的Scripts路徑,執行 easy_install.exe pip 出現下圖,說明pip安裝成功。 pip 的作用:通用的 Python 包管理工具,提供了對 Python

python實現opencv學習floodFill填充函式函式

指定顏色填充:程式碼如下:# -*- coding=GBK -*- import cv2 as cv import numpy as np #指定顏色替換 def fill_image(image): copyImage = image.copy()#複製原影象

opencv學習高斯模糊

程式碼如下: # 匯入cv模組 import cv2 as cv import numpy as np # 確保在0-255之間 def clamp(pv): if pv > 255: return 255 if pv < 0: r

opencv學習筆記七影象修復

當我們的照片有劃痕或遭到人為的塗鴉(比如馬賽克)時, 如果我們想讓這些遭到破壞的圖片儘可能恢復到原樣,Opencv能幫我們做到嗎?答案是肯定的。 那麼影象修復技術的原理是什麼呢? 簡而言之,就是利用那些已經被破壞的區域的邊緣, 即邊緣的顏色和結構,根據這些影象留下的資訊去

Swift 學習?和 !(詳解)

新更新的內容請移步閱讀: Swift語言使用var定義變數,但和別的語言不同,Swift裡不會自動給變數賦初始值, 也就是說變數不會有預設值,所以要求使用變數之前必須要對其初始化 。如果在使用變數之前不進行初始化就會報錯: var stringValue : Stri

Maven 學習筆記Maven倉庫(快照版本)

 Maven倉庫(快照版本) ---------- 在Maven的世界中,任何一個專案或者構件都必須有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHOT或者2.1-20091214.221414-13。其中,1.0、1.3-a

EF6學習筆記格式化日誌輸出

exec https edi 進行 mman sel 能夠 database container 要專業系統地學習EF推薦《你必須掌握的Entity Framework 6.x與Core 2.0》。這本書作者(汪鵬,Jeffcky)的博客:https://www.cnblo

python實現opencv學習十三模板匹配

模板匹配:通俗講就是以圖找圖,通過圖中的一部分來找它在圖中的位置通過三種方式來匹配:cv.TM_SQDIFF_NORMED, cv.TM_CCORR_NORMED, cv.TM_CCOEFF_NORMED程式碼如下:# -*- coding=GBK -*- import cv

設計模式C++實現中介者模式

中介者模式(Mediator):用一箇中介物件來封裝一系列的物件互動。中介者是各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變他們之間的互動。 中介者模式很容易在系統中應用,也很容易在系統中誤用。當系統出現多對多互動複雜的物件群是,不要急於使用中介者模式,而

Nginx詳解Nginx深度學習篇之配置蘋果要求的openssl後臺HTTPS服務

9.png 升級 ssl 版本升級 org tex 技術 就是 加密 配置蘋果要求的證書: 1、服務器所有的連接使用TLS1.2以上的版本(openssl 1.0.2) 2、HTTPS證書必須使用SHA256以上哈希算法簽名 3、HTTPS證書必須使用RSA20

【Java並發編程】之並發新特性—阻塞隊列和阻塞棧(含代碼)

err 退出 link rac gb2312 com void throws pbo 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17511147 阻塞隊列 阻塞隊列是Java 5並發新特性中的內容

java核心學習() 多線程---創建啟動線程的三種方式

使用 trace 啟動 操作系統 java多線程 start name image 獲取    本節開始java多線程編程的學習,對於操作系統、進程、線程的基本概念不再贅述,只是了解java對於多線程編程的支持有哪些。 一、繼承Thread類來創建線程    java語言中

odoo10學習筆記視圖綜述

當前 存在 ren name屬性 簡寫 ann idg 重寫 ogre 原文地址:http://www.cnblogs.com/ygj0930/p/7150983.html 一:視圖標簽等公共結構 name (必選) 用於通過名字查找標簽 model: 與view相關聯的

Go語言學習筆記 切片(slice)

操作 容量 方括號 一個 組類型 學習 中學 slice 修改 Go語言學習筆記十一: 切片(slice) 切片這個概念我是從python語言中學到的,當時感覺這個東西真的比較好用。不像java語言寫起來就比較繁瑣。不過我覺得未來java語法也會支持的。 定義切片 切片可以

學習

linux學習五周第三次課(3月7日)8.1 shell介紹8.2 命令歷史8.3 命令補全和別名8.4 通配符8.5 輸入輸出重定向Linux Shell基礎yum list |grep zsh 命令查詢有沒有安裝該命令命令歷史系統內置的變量決定了 系統會存儲多少條運行的命令echo $HISTSIZE-c

Java並發編程原理與實戰線程通信wait&notify&join

ola run 原理 ons spa sta pro join() cto wait和notify wait和notify可以實現線程之間的通信,當一個線程執行不滿足條件時可以調用wait方法將線程置為等待狀態,當另一個線程執行到等待線程可以執行的條件時,調用notify