Python OpenCV 實現圖片投影


一、實驗目的

通過OpenCV第四次進行實驗,對圖片進行投影。

二、實驗內容

對圖片進行投影。

三、實驗過程

我使用的是python語言+openCV來實現圖片投影的功能。使用的測試圖片如下:

 

3.1測試圖片

 

使用imread()函數讀取圖片,imshow()函數顯示圖片,waitKey()函數含義為按下任意鍵繼續;

實例代碼:

#灰度化讀取圖片

img = cv2.imread('123.jpg', cv2.COLOR_BGR2GRAY)

cv2.imshow("img",img)

cv2.waitKey(0)

 

3.2讀取的圖片

 

二值化代碼:

(_, thresh) = cv2.threshold(img, 150, 255, cv2.THRESH_BINARY)

closed = cv2.erode(thresh, None, iterations = 5)

cv2.imshow('img',closed)

height, width = closed.shape[:2]

v = [0]*width

z = [0]*height

a = 0

垂直投影代碼:

#垂直投影

#統計並存儲每一列的黑點數

for x in range(0, width):               

    for y in range(0, height):

        if closed[y,x][0] == 0:

            a = a + 1

        else :

            continue

    v[x] = a

    a = 0

l = len(v)

#創建空白圖片,繪制垂直投影圖

emptyImage = numpy.zeros((height, width, 3), numpy.uint8)

for x in range(0,width):

    for y in range(0, v[x]):

        b = (255,255,255)

        emptyImage[y,x] = b

cv2.imshow('chuizhi', emptyImage)

 

3.2垂直投影圖

水平投影代碼:

#水平投影

#統計每一行的黑點數

a = 0

emptyImage1 = numpy.zeros((height, width, 3), numpy.uint8)

for y in range(0, height):

    for x in range(0, width):

        if closed[y,x][0] == 0:

            a = a + 1

        else :

            continue

    z[y] = a

    a = 0

l = len(z)

#繪制水平投影圖

for y in range(0,height):

    for x in range(0, z[y]):

        b = (255,255,255)

        emptyImage1[y,x] = b

cv2.imshow('shuiping', emptyImage1)

cv2.waitKey(0)

 

3.4水平投影圖

四、實驗總結

學習了OpenCV的圖片投影一功能,途中未遇到問題,但是本學期學的是Python,我就在網上找的例子分析代碼,也是很快就用Python的代碼做出來了此題,鍛煉了自己的能力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM