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

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

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

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

代碼功能:在python下用opencv

  • 打開(kāi)圖片并顯示并重新寫(xiě)入新的文件
  • 提取圖片特定區(qū)域的像素值(根據(jù)自己需求,下面在代碼中注解)
  • 對(duì)提取出來(lái)的像素值做處理用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為打開(kāi)為灰度圖
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)

# 畫(huà)目標(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

# 畫(huà)條形圖
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ù)組,這樣就沒(méi)有必要再設(shè)置ROI區(qū)域,復(fù)制出來(lái)這塊區(qū)域再循環(huán)提取像素存入數(shù)組進(jìn)行處理了,可以直接將圖片存入數(shù)組,再利用numpy進(jìn)行相應(yīng)的數(shù)組操作就可以了,這樣一想就簡(jiǎn)單很多了,下篇會(huì)寫(xiě)對(duì)數(shù)據(jù)流的處理,直接讀取視頻文件或直接從內(nèi)存取攝像頭的視頻流進(jìn)行處理,未完待續(xù)。

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

相關(guān)文章

  • python實(shí)現(xiàn)抽獎(jiǎng)小程序

    python實(shí)現(xiàn)抽獎(jiǎng)小程序

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)抽獎(jiǎng)小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 利用Python如何制作好玩的GIF動(dòng)圖詳解

    利用Python如何制作好玩的GIF動(dòng)圖詳解

    這篇文章主要給大家介紹了關(guān)于利用Python如何制作好玩的GIF動(dòng)圖的相關(guān)資料,實(shí)現(xiàn)的方法主要利用ImageMagick,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Python入門(mén)教程(二十三)Python的繼承

    Python入門(mén)教程(二十三)Python的繼承

    這篇文章主要介紹了Python入門(mén)教程(二十三)Python的繼承,Python是一門(mén)非常強(qiáng)大好用的語(yǔ)言,也有著易上手的特性,本文為入門(mén)教程,需要的朋友可以參考下
    2023-04-04
  • Python批量啟動(dòng)多線(xiàn)程代碼實(shí)例

    Python批量啟動(dòng)多線(xiàn)程代碼實(shí)例

    這篇文章主要介紹了python批量啟動(dòng)多線(xiàn)程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    這篇文章主要介紹了Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • python?爬取豆瓣電影短評(píng)并利用wordcloud生成詞云圖

    python?爬取豆瓣電影短評(píng)并利用wordcloud生成詞云圖

    這篇文章主要介紹了python?爬取豆瓣電影短評(píng)并利用wordcloud生成詞云圖,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Python3.6正式版新特性預(yù)覽

    Python3.6正式版新特性預(yù)覽

    Python3.6計(jì)劃在2016-12-16正式發(fā)布。截止目前,PSF 已經(jīng)發(fā)布了 9 個(gè)測(cè)試版本。在新版本正式發(fā)布之前,我們一起來(lái)體驗(yàn)一下都會(huì)有哪些重要的新特性。
    2016-12-12
  • pycharm新建一個(gè)python工程步驟

    pycharm新建一個(gè)python工程步驟

    在本文里小編給讀者們分享一篇關(guān)于pycharm怎么新建一個(gè)python工程的知識(shí)點(diǎn)和步驟內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • Python批量修改文件名,文件再多也只要一秒

    Python批量修改文件名,文件再多也只要一秒

    大家好,本篇文章主要講的是Python批量修改文件名,文件再多也只要一秒,感興趣的同學(xué)趕快來(lái)看一看,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python解析JSON數(shù)據(jù)的示例代碼

    Python解析JSON數(shù)據(jù)的示例代碼

    JSON格式是網(wǎng)站和API使用的通用標(biāo)準(zhǔn)格式,現(xiàn)在主流的一些數(shù)據(jù)庫(kù)(如PostgreSQL)都支持JSON格式,在本文中,我們將介紹如何使用Python解析JSON數(shù)據(jù),感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-09-09

最新評(píng)論

资兴市| 呼玛县| 齐河县| 和林格尔县| 沂南县| 珠海市| 科尔| 莒南县| 韶关市| 阳山县| 东港市| 罗田县| 会理县| 景泰县| 临西县| 临泉县| 太白县| 塔城市| 额尔古纳市| 陵水| 安新县| 当雄县| 文昌市| 德格县| 临颍县| 玉环县| 沙坪坝区| 娱乐| 封开县| 崇明县| 宜春市| 平凉市| 饶阳县| 义乌市| 新泰市| 南丹县| 山阴县| 凤翔县| 博爱县| 长春市| 赤峰市|