欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python+OpenCV圖片局部區(qū)域像素值處理詳解

 更新時(shí)間:2019年01月23日 11:24:34   作者:零尾  
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV圖片局部區(qū)域像素值處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

背景故事:我需要對(duì)一張圖片做一些處理,是在圖像像素級(jí)別上的數(shù)值處理,以此來反映圖片中特定區(qū)域的圖像特征,網(wǎng)上查了很多,大多關(guān)于opencv的應(yīng)用教程帖子基本是停留在打開圖片,提取像素重新寫入圖片啊之類的基本操作,我是要取圖片中的特定區(qū)域再提取它的像素值,作為一個(gè)初學(xué)者開始接觸opencv簡(jiǎn)直一臉懵,慢慢摸索著知道了opencv的一些函數(shù)是可以實(shí)現(xiàn)的像SetImageROI()函數(shù)設(shè)置ROI區(qū)域,即感興趣區(qū)域,就很好用啊,總之最后是實(shí)現(xiàn)了自己想要的功能?,F(xiàn)在看個(gè)程序確實(shí)是有點(diǎn)挫,也有好多多余的沒必要的代碼,但畢竟算一次碼代碼的歷程,就原模原樣貼在這里吧。

代碼功能:在python下用opencv

  • 打開圖片并顯示并重新寫入新的文件
  • 提取圖片特定區(qū)域的像素值(根據(jù)自己需求,下面在代碼中注解)
  • 對(duì)提取出來的像素值做處理用matplotlib顯示成條形圖

源碼貼在下面:

# -*- coding:utf-8 -*-
__author__ = 'lwp'
import cv2.cv as cv
import numpy as np
import matplotlib.pyplot as plt

# 文件路徑
path = '/media/lwp/A/4.bmp'
# 載入一張圖片,參數(shù)cv.CV_LOAD_IMAGE_GRAYSCALE為打開為灰度圖
lwpImg = cv.LoadImage(path, cv.CV_LOAD_IMAGE_GRAYSCALE)
# 創(chuàng)建圖像空間,參數(shù)為size, depth, channels,這里設(shè)置的是圖片等高寬30個(gè)像素的一個(gè)區(qū)域,8位,灰度圖
box_lwpImg = cv.CreateImage((30, 576), 8, 1)

# 創(chuàng)建窗口
cv.NamedWindow('test1', cv.CV_WINDOW_AUTOSIZE)
cv.NamedWindow("box_test1", cv.CV_WINDOW_AUTOSIZE)

# 設(shè)置ROI區(qū)域,即感興趣區(qū)域,參數(shù)為x, y, width, heigh
cv.SetImageROI(lwpImg, (390, 0, 30, 576)) 
# 提取ROI,從lwpImg圖片的感興趣區(qū)域到box_lwpImg
cv.Copy(lwpImg, box_lwpImg)

# 對(duì)box區(qū)域進(jìn)行循環(huán)提取像素值存到列表pixel_list中
pixel_list = []
for i in range(576): # 576為box的高
  for j in range(30): # 30為box的寬
    x = box_lwpImg[i, j]
    pixel_list.append(x)

# 提取的像素值轉(zhuǎn)為int整型賦給一維數(shù)組pixel_list_np_1
pixel_list_np_1 = np.array(pixel_list, dtype=int)
# 轉(zhuǎn)為576*30的二位數(shù)組,即按圖片box排列
pixel_list_np_2 = np.array(pixel_list_np_1).reshape(576, 30)
# 行求和,得到576個(gè)值,即每行的像素信息
pixel_sum = np.sum(pixel_list_np_2, axis=1)

# 取消設(shè)置
cv.ResetImageROI(lwpImg)

# 畫目標(biāo)區(qū)域
lwpImg = cv.Rectangle(lwpImg, (390, 0), (425, 576), (0, 255, 0), 2)
# 顯示圖像
cv.ShowImage('test1', lwpImg)
# 查看列表list長(zhǎng)度,以確定像素值提取準(zhǔn)確
list_length = len(pixel_list)
print list_length

# 查看數(shù)組維度,shape驗(yàn)證
print pixel_list_np_1.ndim
print pixel_list_np_1.shape
print pixel_list_np_1

print pixel_list_np_2.ndim
print pixel_list_np_2.shape
print pixel_list_np_2

print pixel_sum

# 畫條形圖
plt.figure(1)
width = 1
for i in range(len(pixel_sum)):
  plt.figure(1)
  plt.bar(i, pixel_sum[i], width)
plt.xlabel("X")
plt.ylabel("pixel_sum")
plt.show()

# 按ESC退出,按s保存圖片
k = cv.WaitKey(0)
if k == 27:         # wait for ESC key to exit
  cv.DestroyAllWindows()
elif k == ord('s'):     # wait for 's' key to save and exit
  cv.WriteFrame('copy_test.png', lwpImg)
  cv.DestroyAllWindows()

補(bǔ)充:這個(gè)代碼雖然實(shí)現(xiàn)了我需要的功能,之后在對(duì)視頻流做同樣像素值提取處理并繪圖的時(shí)候,意識(shí)到圖片本就是數(shù)組形式,對(duì)于8位灰度圖,通道數(shù)為1,它就是個(gè)二位數(shù)組,這樣就沒有必要再設(shè)置ROI區(qū)域,復(fù)制出來這塊區(qū)域再循環(huán)提取像素存入數(shù)組進(jìn)行處理了,可以直接將圖片存入數(shù)組,再利用numpy進(jìn)行相應(yīng)的數(shù)組操作就可以了,這樣一想就簡(jiǎn)單很多了,下篇會(huì)寫對(duì)數(shù)據(jù)流的處理,直接讀取視頻文件或直接從內(nèi)存取攝像頭的視頻流進(jìn)行處理,未完待續(xù)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 9種python web 程序的部署方式小結(jié)

    9種python web 程序的部署方式小結(jié)

    python有很多web 開發(fā)框架,代碼寫完了,部署上線是個(gè)大事,通常來說,web應(yīng)用一般是三層結(jié)構(gòu)web server ---->application -----> DB server
    2014-06-06
  • python自動(dòng)化實(shí)現(xiàn)的簡(jiǎn)單使用

    python自動(dòng)化實(shí)現(xiàn)的簡(jiǎn)單使用

    本文主要介紹了python自動(dòng)化實(shí)現(xiàn)的簡(jiǎn)單使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 利用Python寫個(gè)摸魚監(jiān)控進(jìn)程

    利用Python寫個(gè)摸魚監(jiān)控進(jìn)程

    繼打游戲、看視頻等摸魚行為被監(jiān)控后,現(xiàn)在打工人離職的傾向也會(huì)被監(jiān)控。今天就帶大家領(lǐng)略一下怎么寫幾行Python代碼,就能監(jiān)控電腦,感興趣的可以學(xué)習(xí)一下
    2022-02-02
  • python實(shí)現(xiàn)二級(jí)登陸菜單及安裝過程

    python實(shí)現(xiàn)二級(jí)登陸菜單及安裝過程

    這篇文章主要介紹了python實(shí)現(xiàn)二級(jí)登陸菜單及安裝過程,,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python調(diào)試過程中多顏色輸出方式

    python調(diào)試過程中多顏色輸出方式

    這篇文章主要介紹了python調(diào)試過程中多顏色輸出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python?OLS?雙向逐步回歸方式

    Python?OLS?雙向逐步回歸方式

    這篇文章主要介紹了Python?OLS?雙向逐步回歸方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 基于python實(shí)現(xiàn)文件加密功能

    基于python實(shí)現(xiàn)文件加密功能

    這篇文章主要介紹了基于python實(shí)現(xiàn)文件加密功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法

    python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法

    這篇文章主要介紹了python bluetooth藍(lán)牙信息獲取藍(lán)牙設(shè)備類型的方法,具體轉(zhuǎn)化方法文中給大家介紹的非常詳細(xì),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼

    python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼

    今天小編就為大家分享一篇python實(shí)現(xiàn)局域網(wǎng)內(nèi)實(shí)時(shí)通信代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python中獲取文件大小的四種辦法

    Python中獲取文件大小的四種辦法

    這篇文章主要給大家介紹了關(guān)于Python中獲取文件大小的四種辦法,我們可以使用Python中的os模塊來獲取視頻文件大小,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08

最新評(píng)論