日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【图像处理】——遍历图像所有像素的方法(for 循环和np.where遍历)应用在模板制作

發布時間:2023/12/10 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【图像处理】——遍历图像所有像素的方法(for 循环和np.where遍历)应用在模板制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

具體np.where的用法可以參見:

其他遍歷圖像的所有像素的方法:

模板制作流程

Python代碼


具體np.where的用法可以參見:

https://blog.csdn.net/YH_24H/article/details/108368994

其他遍歷圖像的所有像素的方法:

https://blog.csdn.net/gdut2015go/article/details/49282031

模板制作流程

Python代碼

import cv2 import numpy as np import time #背景圖 start = time.time() bg = cv2.imread('bg.jpg',0) #含目標的圖 bgWithObj = cv2.imread('bgWithObj.jpg',0) #差分圖 diffImg = bg - bgWithObj #利用最大類間差法獲得閾值,以及二值圖 ret, binary = cv2.threshold(diffImg, 0, 255, cv2.THRESH_OTSU) #考慮到噪聲的影響,利用形態學操作對二值圖進行濾波 binaryDilate = cv2.dilate(binary,kernel=None,iterations=6)#先進行5次膨脹操作,去掉二值圖中目標物中的噪點 binaryErode = cv2.erode(binaryDilate,kernel=None,iterations=20)#再通過腐蝕去掉背景中的白點 #根據上面的二值圖變成標記圖,255設置為1,0設置為0 h,w = binaryErode.shape print(h,w) imgTag = np.zeros((h,w),np.uint8) ##通過np.where來遍歷滿足像素的坐標 xy = np.where(binaryErode==255)#返回滿足像素值等于255的行列號,xy[0]為行,xy[1]為列 print(len(xy[0])) for i in range(len(xy[0])):imgTag[xy[0][i],xy[1][i]] = 1 ##for循環直接遍歷的效率低 # for i in range(h): # for j in range(w): # if binaryErode[i,j] == 255: # imgTag[i,j] = 1 # else: # imgTag[i,j] = 0 #將得到的標記掩膜圖像與含目標圖進行相乘 Template = imgTag*bgWithObj cv2.namedWindow('diffImg',0) cv2.namedWindow('imgTag',0) cv2.namedWindow('binary',0) cv2.namedWindow('Template',0) cv2.imshow('diffImg',diffImg) cv2.imshow('binary',binaryErode) cv2.imshow('imgTag',imgTag) cv2.imshow('Template',Template) end = time.time() print(end - start) cv2.waitKey(0)

np.where用時:2.8017001152038574ms(用時比較穩定)

for循環用時:56.08514666557312ms反正就是很慢

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【图像处理】——遍历图像所有像素的方法(for 循环和np.where遍历)应用在模板制作的全部內容,希望文章能夠幫你解決所遇到的問題。

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