圖123.jpg
先看一下執行結果水平投影
垂直投影
圖project1.bmp
水平投影
垂直投影
**如下
這個**實現的是project1.bmp的投影
import cv2
import numpy as np
from matplotlib import pyplot as plt
from pil import image
img=cv2.imread(
'e:\\project1.bmp'
)#將影象轉為灰度圖
grayimage=cv2.cvtcolor(img,cv2.color_bgr2gray)
#水平投影
ret,thresh1=cv2.threshold(grayimage,
130,
255,cv2.thresh_binary)
(h,w)
=thresh1.shape #返回高和寬
#初始化乙個跟影象高一樣長度的陣列,用於記錄每一行的黑點個數
a =[
0for z in
range(0
, h)
]for j in
range(0
,h):
#遍歷每一行
for i in
range(0
,w):
#遍歷每一列
if thresh1[j,i]==0
:#判斷該點是否為黑點,0代表黑點
a[j]+=1
#該行的計數器加一
thresh1[j,i]
=255
#將其改為白點,即等於255
for j in
range(0
,h):
#遍歷每一行
for i in
range(0
,a[j]):
#從該行應該變黑的最左邊的點開始向最右邊的點設定黑點
thresh1[j,i]=0
#設定黑點
plt.imshow(thresh1,cmap=plt.gray())
plt.show(
)#垂直投影
ret,thresh1=cv2.threshold(grayimage,
130,
255,cv2.thresh_binary)
(h,w)
=thresh1.shape #返回高和寬
#初始化乙個跟影象寬一樣長度的陣列,用於記錄每一列的黑點個數
a =[
0for z in
range(0
, w)
]for j in
range(0
,w):
#遍歷每一列
for i in
range(0
,h):
#遍歷每一行
if thresh1[i,j]==0
:#判斷該點是否為黑點,0代表是黑點
a[j]+=1
#該列的計數器加1
thresh1[i,j]
=255
#記錄完後將其變為白色,即等於255
for j in
range(0
,w):
#遍歷每一列
for i in
range
(h-a[j]
,h):
#從該列應該變黑的最頂部的開始向最底部設為黑點
#for i in range(0,a[i]):
thresh1[i,j]=0
#設為黑點
plt.imshow(thresh1,cmap=plt.gray())
plt.show(
)
cv2.waitkey(
0)
cv2.destroyallwindows(
)
OpenCV Python 實現人臉識別
參考 1 2 haar特徵值反映了影象的灰度變化情況。例如 臉部的一些特徵能由矩形特徵簡單的描述,如 眼睛要比臉頰顏色要深,鼻樑兩側比鼻樑顏色要深,嘴巴比周圍顏色要深等。import cv2 image cv2.imread imagepath import cv2 gray cv2.cvtcolo...
使用opencv python實現人臉識別
簡潔的 完 臉識別,本文用到的人臉識別分類器在opencv python的安裝目錄下可以找到,檔名haarcascade frontalface alt2.xml 上 import cv2 def getfaceidimg img cv2.namedwindow 1 num 0 frame cv2....
OpenCV Python模糊處理
import cv2 as cv import numpy as np 均值模糊 defblur demo img dst cv.blur img,5 5 cv.imshow blur image dst import cv2 as cv import numpy as np 中值模糊 defmed...