您當前的位置:首頁 > 舞蹈

怎麼用Python把自帶網格的圖片分割出來?

作者:由 SPARKS 發表于 舞蹈時間:2022-03-17

怎麼用Python把自帶網格的圖片分割出來?努力搬磚2022-03-17 20:27:24

你先將圖片分為n*m的網格,寬高除以nm分出畫素的不同網格座標,最後讀取即可。

怎麼用Python把自帶網格的圖片分割出來?知乎使用者2022-03-18 22:44:14

用opencv教程角點檢測稍微改一下+角點聚類處理一下,大概能得到橫線豎線的均值,分割開來就可以

import

cv2

as

cv

import

numpy

as

np

from

sklearn。cluster

import

KMeans

def

goodFeaturesToTrack_Demo

val

):

maxCorners

=

max

val

1

# Parameters for Shi-Tomasi algorithm

qualityLevel

=

0。01

minDistance

=

10

blockSize

=

5

gradientSize

=

3

useHarrisDetector

=

False

k

=

0。04

# Apply corner detection

corners

=

cv

goodFeaturesToTrack

src_gray

maxCorners

qualityLevel

minDistance

None

\

blockSize

=

blockSize

gradientSize

=

gradientSize

useHarrisDetector

=

useHarrisDetector

k

=

k

print

‘** Number of corners detected:’

corners

shape

0

])

# Set the needed parameters to find the refined corners

winSize

=

5

5

zeroZone

=

-

1

-

1

criteria

=

cv

TERM_CRITERIA_EPS

+

cv

TermCriteria_COUNT

40

0。001

# Calculate the refined corner locations

corners

=

cv

cornerSubPix

src_gray

corners

winSize

zeroZone

criteria

return

corners

src

=

cv

imread

‘。/1。jpeg’

src_gray

=

src

[:,

:,

0

corners

=

goodFeaturesToTrack_Demo

30

print

corners

shape

X

=

np

zeros

((

corners

shape

0

],

2

),

dtype

=

np

float32

X

[:,

0

=

corners

[:,

0

0

kmeans

=

KMeans

n_clusters

=

5

random_state

=

0

fit

X

for

i

in

range

corners

shape

0

]):

if

kmeans

labels_

i

==

0

cv

circle

src

int

corners

i

0

0

]),

int

corners

i

0

1

])),

4

255

0

0

),

cv

FILLED

if

kmeans

labels_

i

==

1

cv

circle

src

int

corners

i

0

0

]),

int

corners

i

0

1

])),

4

0

255

0

),

cv

FILLED

if

kmeans

labels_

i

==

2

cv

circle

src

int

corners

i

0

0

]),

int

corners

i

0

1

])),

4

0

0

255

),

cv

FILLED

if

kmeans

labels_

i

==

3

cv

circle

src

int

corners

i

0

0

]),

int

corners

i

0

1

])),

4

255

255

0

),

cv

FILLED

if

kmeans

labels_

i

==

4

cv

circle

src

int

corners

i

0

0

]),

int

corners

i

0

1

])),

4

0

255

255

),

cv

FILLED

cv

imwrite

‘Image。jpg’

src

怎麼用Python把自帶網格的圖片分割出來?

5個子類,再次做聚類排除掉一些偏差大的點就差不多了

標簽: Corners  CV  src  int  255