1. 程式人生 > >OpenCv-Python 影象處理基本操作

OpenCv-Python 影象處理基本操作

1. 圖片載入、顯示和儲存

import cv2

img = cv2.imread("01.jpg")
imgGrey = cv2.imread("01.jpg",0)
cv2.imshow("img",img)
cv2.imshow("imgGrey",imgGrey)
cv2.waitKey()
cv2.imwrite("Copy.jpg",img)

2. 影象顯示視窗建立與銷燬

cv2.namedWindow(視窗名,屬性) 建立一個視窗

屬性—指定視窗大小模式: 

cv2.WINDOW_AUTOSIZE:根據影象大小自動建立大小
cv2.WINDOW_NORMAL:視窗大小可調整
cv2.destoryAllWindows(視窗名) 刪除任何建立的視窗
import cv2

img = cv2.imread("01.jpg")

cv2.namedWindow("img",cv2.WINDOW_NORMAL)
cv2.imshow("img",img)
cv2.waitKey()
cv2.destroyAllWindows()

3. 圖片寬、高、通道數獲取

img.shape 返回影象高(影象矩陣的行數)、寬(影象矩陣的列數)和通道數3個屬性組成的元組,若影象是非彩色圖,則只返回高和寬組成的元組。

import cv2

img = cv2.imread("01.jpg")
imgGrey = cv2.imread("01.jpg",0)

sp1 = img.shape
sp2 = imgGrey.shape

print sp1
print sp2

4. 影象畫素數目和影象資料型別獲取

影象矩陣img的size屬性和dtype分別對應影象的畫素總數目和影象資料型別。一般情況下,影象的資料型別是uint8。

import cv2

img = cv2.imread("01.jpg")

imgSize = img.size
print imgSize

ty = img.dtype
print ty

5. 生成指定大小的空影象


使用numpy.zeros()函式生成指定大小的空影象
import cv2
import numpy as np

img = cv2.imread("01.jpg")
imgZero = np.zeros(img.shape,np.uint8)

imgFix = np.zeros((300,500,3),np.uint8)
# imgFix = np.zeros((300,500),np.uint8)

cv2.imshow("img",img)
cv2.imshow("imgZero",imgZero)
cv2.imshow("imgFix",imgFix)
cv2.waitKey()

6. 訪問和操作影象畫素

OpenCV中影象矩陣的順序是B、G、R。可以直接通過座標位置訪問和操作影象畫素。

import cv2

img = cv2.imread("01.jpg")

numb = img[50,100]
print numb

img[50,100] = (0,0,255)
cv2.imshow("img",img)
cv2.waitKey()

分開訪問影象某一通道畫素值也炒雞方便:

import cv2

img = cv2.imread("01.jpg")

img[0:100,100:200,0] = 255
img[100:200,200:300,1] = 255
img[200:300,300:400,2] = 255

cv2.imshow("img",img)
cv2.waitKey()

嗯,不得不說Python是一個很神奇的存在。

Python中,更改影象某一矩形區域的畫素值也很方便:

import cv2

img = cv2.imread("01.jpg")

img[0:50,1:100] = (0,0,255)

cv2.imshow("img",img)
cv2.waitKey()

7. 影象三通道分離和合並

分離影象通道可以使用cv2中的split函式,合併使用merge函式。

import cv2

img = cv2.imread("01.jpg")

b , g , r = cv2.split(img)

# b = cv2.split(img)[0]
# g = cv2.split(img)[1]
# r = cv2.split(img)[2]

merged = cv2.merge([b,g,r])

cv2.imshow("Blue",b)
cv2.imshow("Green",g)
cv2.imshow("Red",r)

cv2.imshow("Merged",merged)
cv2.waitKey()

8. 在影象上輸出文字


使用putText函式在圖片上輸出文字,函式原型:
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
  • img: 影象
  • text:要輸出的文字
  • org: 文字的起點座標
  • fontFace: 字型
  • fontScale: 字型大小
  • color: 字型顏色
  • thickness: 字圖加粗
import cv2

img = cv2.imread("01.jpg")

cv2.putText(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255))

cv2.imshow("img",img)
cv2.waitKey()


9. 影象縮放

縮放使用cv2.resize()函式,resize函式裡的size第一個是寬(列),第二個是高(行)。

import cv2

img = cv2.imread("01.jpg")
cv2.imshow("img",img)

imgg = cv2.resize(img,(300,100))

cv2.imshow("imgg",imgg)

cv2.waitKey()

相關推薦

OpenCv-Python 影象處理基本操作

1. 圖片載入、顯示和儲存import cv2 img = cv2.imread("01.jpg") imgGrey = cv2.imread("01.jpg",0) cv2.imshow("img"

opencv影象處理基本操作addWeighted

beta = ( 1.0 - alpha ); addWeighted( src1, alpha, src2, beta, 0.0, dst); 1、src1,輸入圖片1, 2、alpha,圖片1的融合比例 3、src2,輸入圖片2 4、beta,圖片2的融合比

opencv影象處理基本操作_直方圖比較

compareHist(hist_base, hist_test1, CV_COMP_CORREL);//相關性比較 compareHist(hist_base, hist_test1, CV_COMP_CHISQR);//卡方比較 compareHist(hist_base

opencv影象處理基本操作goodFeaturesToTrack

    goodFeaturesToTrack(gray_src, corners, max_corners, qualityLevel, minDistance, Mat(), blockSize=3, useHarris, k); 第一個引數src:8位或32位單通道灰

opencv影象處理基本操作cornerEigenValsAndVecs

void cvCornerEigenValsAndVecs( const CvArr* image, CvArr* eigenvv,int block_size, int aperture_size=3 ) image 輸入影象. eigenvv 儲存結果的陣列。必須

MATLAB數字影象處理基本操作函式

影象讀取:I = imread('mao.jpg'); 影象顯示:imshow(I) 彩色轉灰度:I = rgb2gray(I); 影象縮放:X1 = imresize(I,2);%放大兩倍 影象旋轉:B = imrotate(A,angle); 插值: 1、最

opencv+Python影象處理進階教程學習總結記錄(一)

教程:2 opencv+python影象處理進階 講解老師:賈志剛 1.1 進階主要內容概述:影象卷積與應用,直方圖應用,模板匹配,影象金字塔 1.2 模糊與卷積原理 上圖顯示為一維和二維的均值卷積示例 相關Api : blur 程式碼示例 import c

影象處理入門——matlab數字影象處理基本操作

環境:mac os 11.7 上 matlab2015 1.基本讀入,讀出操作 I=imread('lena.jpg') %讀入當前工作目錄下lena圖 imshow(I) %顯示讀入影象 imwrite(I,'/Users/zhouhan

OpenCV-Python 影象處理(二):影象的讀取、顯示與儲存

說明: 本系列主要是學習OpenCV-Python文件的個人筆記。 很少有理論的敘述,都是函式名、引數描述、作用、應用場景、程式碼、效果圖。簡單明瞭,即學即用。 目標 學會讀取、顯示、儲存單張影象 對應的函式分佈為:cv2.imread() ,

影象處理OpenCV+Python影象處理入門教程(四)幾何變換

       這篇隨筆介紹使用OpenCV進行影象處理的第四章 幾何變換。 4  幾何變換        影象的幾何變換是指將一幅影象對映到另一幅影象內。有縮放、翻轉、仿射變換、透視、重對映等操作。 4.1 

影象處理OpenCV+Python影象處理入門教程(五)閾值處理

       這篇隨筆介紹使用OpenCV進行影象處理的第五章 閾值處理。 5  閾值處理 閾值是指畫素到達某臨界值。閾值處理表示畫素到達某臨界值後,對該畫素點進行操作和處理。 例如:設定一幅影象素閾值為200,則圖片中所有大於200的畫素點設定為2

openCV Python 學習筆記(一)影象基本操作

Python的版本是Python3.6,openCV使用的是cv2 例圖 一、影象的讀取、顯示和儲存 讀取影象:cv2.imread(filename,flags) 該函式有兩個引數,第一個引數是圖

Python影象處理基本操作(一)

1.安裝PIL:Python 影象處理庫 2.基本操作 利用PIL中的函式,我們可以從大多數影象格式的檔案中讀取資料,然後寫入最常見的影象格式檔案中。PIL中最重要的模組為Image。要讀取一幅影

Python 影象處理 OpenCV (2):畫素處理與 Numpy 操作以及 Matplotlib 顯示影象

![](https://cdn.geekdigging.com/opencv/opencv_header.png) 前文傳送門: [「Python 影象處理 OpenCV (1):入門」](https://www.geekdigging.com/2020/05/17/5513454552/) ## 普通

opencv--影象基本操作【2】

1、影象的表示 1.1、數字影象 一副尺寸為 M × N 的影象可以用一個 M × N 的矩陣來表示,矩陣元素的值表示這個位置上的畫素的亮度,一般來說畫素值越大表示該點越亮。 如圖影象,我們看到的是 Lena 的頭像,但是計算機看來,這副影象只是一堆亮度各異的點。 圖中白色圓圈

Python影象基本操作

(1)cv2方式 # -*- coding: utf-8 -*- """ Created on Thu Nov 29 14:19:53 2018 @author: cz """ from PIL import Image import cv2 import matplotlib.pyplot

OpneCV之影象基本操作:形狀、通道分離/合併、影象混合、相加、位操作——python實現

一、讀入圖片獲得畫素點的畫素值、改變畫素值、改變單個通道畫素值、獲得影象的行、列、影象資料型別、畫素點、ROI區域. import cv2 import numpy as np #讀取一個彩色影象 img = cv2.imread('C:/Users/NWPU/Desktop/1.jpg')

python進階—OpenCV影象處理(二)

文章目錄 影象形態變換 影象的腐蝕 影象的膨脹 影象的開操作 影象的閉操作 影象的形態學梯度 影象的頂帽操作 影象的黑帽操作 影象的梯度(Image Gradients) So

python進階—OpenCV影象處理(一)

文章目錄 顏色空間轉換 RGB色彩空間 HSV色彩空間 YUV色彩空間 簡單的物體跟蹤示例 HSV空間目標閾值選取 影象幾何變換 影象的縮放 影象的位移 影象的旋轉 影

Opencv--形態學影象處理--膨脹與腐蝕,開操作與閉操作

一、理論與概念講解——從現象到本質 1.1 形態學概述 形態學(morphology)一詞通常表示生物學的一個分支,該分支主要研究動植物的形態和結構。而我們影象處理中指的形態學,往往表示的是數學形態學。下面一起來了解數學形態學的概念。 數學形態學(M