336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import time
import cv2
import numpy as np
from mss import mss

red_color = (255, 255, 255)

def checkImage(src, dst):
difference = cv2.subtract(src, dst)
ret, difference = cv2.threshold(difference, 55, 255, cv2.THRESH_BINARY)
nzCount = cv2.countNonZero(difference)
return nzCount

def checkContentsImage(src, srcNum, imageContents1 , imageContents2, imageContents3, imageContents4, lcapturedImage ):


returnValue = 0
if checkImage(src, imageContents1) < imageContentsTh:
print("Detected " + str(srcNum) + "-1 " + str(checkImage(src, imageContents1)))
returnValue = 1
if checkImage(src, imageContents2) < imageContentsTh:
print("Detected " + str(srcNum) + "-2 " + str(checkImage(src, imageContents2)))
returnValue = 2
if checkImage(src, imageContents3) < imageContentsTh:
print("Detected " + str(srcNum) + "-3 " + str(checkImage(src, imageContents3)))
returnValue = 3
if checkImage(src, imageContents4) < imageContentsTh:
print("Detected " + str(srcNum) + "-4 " + str(checkImage(src, imageContents4)))
returnValue = 4

if returnValue != 0:
if srcNum == 1:
lcapturedImage = cv2.rectangle(lcapturedImage, (3, 1), (116, 115), red_color, 2)
if srcNum == 3:
lcapturedImage = cv2.rectangle(lcapturedImage, (3, 1+141), (116, 115+141), red_color, 2)
if srcNum == 5:
lcapturedImage = cv2.rectangle(lcapturedImage, (3, 1+141+141), (116, 115+141+141), red_color, 2)
if srcNum == 7:
lcapturedImage = cv2.rectangle(lcapturedImage, (3, 1+141+141+141), (116, 115+141+141+141), red_color, 2)

if srcNum == 2:
lcapturedImage = cv2.rectangle(lcapturedImage, (143, 1), (143+116, 115), red_color, 2)
if srcNum == 4:
lcapturedImage = cv2.rectangle(lcapturedImage, (143, 1+ 141), (143+116, 115+141), red_color, 2)
if srcNum == 6:
lcapturedImage = cv2.rectangle(lcapturedImage, (143, 1 + 141 + 141), (143+116, 115+141+141), red_color, 2)
if srcNum == 8:
lcapturedImage = cv2.rectangle(lcapturedImage, (143, 1 + 141 + 141 + 141), (143+116, 115+141+141+141), red_color, 2)

return returnValue



print("load finger png files...")
imageFinger1 = cv2.imread("finger1.bmp", cv2.IMREAD_GRAYSCALE)
imageFinger2 = cv2.imread("finger2.bmp", cv2.IMREAD_GRAYSCALE)
imageFinger3 = cv2.imread("finger3.bmp", cv2.IMREAD_GRAYSCALE)
imageFinger4 = cv2.imread("finger4.bmp", cv2.IMREAD_GRAYSCALE)
#imageFinger1 = cv2.imread("finger1.bmp")
#imageFinger2 = cv2.imread("finger2.bmp")
#imageFinger3 = cv2.imread("finger1.png")
#imageFinger4 = cv2.imread("finger1.png")
print("load finger png files... Done")


with mss() as sct:
mon1 = sct.monitors[1]
mon2 = sct.monitors[2]
box = {'top': mon1['top'] +178, 'left': mon1['left'] + 913, 'width': 458, 'height': 516}
componentsbox = {'top': mon1['top'] +290, 'left': mon1['left'] + 486, 'width': 257, 'height': 536}
componentsbox1 = {'top': mon1['top'] +290, 'left': mon1['left'] + 486, 'width': 114, 'height': 115}
componentsbox2 = {'top': mon1['top'] +290, 'left': mon1['left'] + 626, 'width': 114, 'height': 115}
componentsbox3 = {'top': mon1['top'] +430, 'left': mon1['left'] + 486, 'width': 114, 'height': 115}
componentsbox4 = {'top': mon1['top'] +430, 'left': mon1['left'] + 626, 'width': 114, 'height': 115}
componentsbox5 = {'top': mon1['top'] +570, 'left': mon1['left'] + 486, 'width': 114, 'height': 115}
componentsbox6 = {'top': mon1['top'] +570, 'left': mon1['left'] + 626, 'width': 114, 'height': 115}
componentsbox7 = {'top': mon1['top'] +710, 'left': mon1['left'] + 486, 'width': 114, 'height': 115}
componentsbox8 = {'top': mon1['top'] +710, 'left': mon1['left'] + 626, 'width': 114, 'height': 115}

DebugMode = False
# mon = sct.monitors[0]
while True:
last_time = time.time()
capturedImage = np.array(sct.grab(box))
capturedImage = cv2.cvtColor(capturedImage, cv2.COLOR_BGR2GRAY)

#ret, capturedImage = cv2.threshold(capturedImage, 127, 255, cv2.THRESH_BINARY)
#ret, imageFinger1 = cv2.threshold(imageFinger1, 127, 255, cv2.THRESH_BINARY)
#ret, imageFinger2 = cv2.threshold(imageFinger2, 127, 255, cv2.THRESH_BINARY)

#capturedImage = cv2.cvtColor(capturedImage, cv2.COLOR_BGR2RGB)
#capturedImage = cv2.cvtColor(capturedImage, cv2.COLOR_BGR2GRAY)
#capturedImage = cv2.threshold(capturedImage, 127,255, cv2.THRESH_BINARY)
#imageFinger1 = cv2.threshold(imageFinger1, 127, 255, cv2.THRESH_BINARY)
#imageFinger2 = cv2.threshold(imageFinger2, 127, 255, cv2.THRESH_BINARY)


#print('fps: {0}'.format(1 / (time.time()-last_time)))

#cv2.imshow('capturedImage', capturedImage)

difference = cv2.subtract(capturedImage, imageFinger1)
ret, difference = cv2.threshold(difference, 55, 255, cv2.THRESH_BINARY)
if DebugMode == True:
cv2.imshow('imageFinger1', difference)
nzCount1 = cv2.countNonZero(difference)
#print("imageFinger1 : " + str(nzCount1))

difference = cv2.subtract(capturedImage, imageFinger2)
ret, difference = cv2.threshold(difference, 55, 255, cv2.THRESH_BINARY)
if DebugMode == True:
cv2.imshow('imageFinger2', difference)
nzCount2 = cv2.countNonZero(difference)
#print("imageFinger2 : " + str(nzCount2))



difference = cv2.subtract(capturedImage, imageFinger3)
ret, difference = cv2.threshold(difference, 55, 255, cv2.THRESH_BINARY)
if DebugMode == True:
cv2.imshow('imageFinger3', difference)
nzCount3 = cv2.countNonZero(difference)
#print("imageFinger3 : " + str(nzCount3))

difference = cv2.subtract(capturedImage, imageFinger4)
ret, difference = cv2.threshold(difference, 55, 255, cv2.THRESH_BINARY)
if DebugMode == True:
cv2.imshow('imageFinger4', difference)
nzCount4 = cv2.countNonZero(difference)
#print("imageFinger4 : " + str(nzCount4))
imageFingerNumber = 0

if nzCount1 < 10000 and nzCount2 > 10000 and nzCount3 > 10000 and nzCount4 > 10000:
print("imageFinger1 : " + str(nzCount1))
imageFingerNumber = 1

if nzCount1 > 10000 and nzCount2 < 10000 and nzCount3 > 10000 and nzCount4 > 10000:
print("imageFinger2 : " + str(nzCount2))
imageFingerNumber = 2

if nzCount1 > 10000 and nzCount2 > 10000 and nzCount3 < 10000 and nzCount4 > 10000:
print("imageFinger3 : " + str(nzCount3))
imageFingerNumber = 3

if nzCount1 > 10000 and nzCount2 > 10000 and nzCount3 > 10000 and nzCount4 < 10000:
print("imageFinger4 : " + str(nzCount4))
imageFingerNumber = 4



capturedImage = np.array(sct.grab(componentsbox))
capturedImage = cv2.cvtColor(capturedImage, cv2.COLOR_BGR2GRAY)
cv2.imshow('ContentsBox', capturedImage)

if imageFingerNumber != 0:
print("Detected finger Number : !!!" + str(imageFingerNumber))

imageContents1 = cv2.imread("Acontent"+ str(imageFingerNumber) + "-1.bmp", cv2.IMREAD_GRAYSCALE)
imageContents2 = cv2.imread("Acontent"+ str(imageFingerNumber) + "-2.bmp", cv2.IMREAD_GRAYSCALE)
imageContents3 = cv2.imread("Acontent"+ str(imageFingerNumber) + "-3.bmp", cv2.IMREAD_GRAYSCALE)
imageContents4 = cv2.imread("Acontent"+ str(imageFingerNumber) + "-4.bmp", cv2.IMREAD_GRAYSCALE)

imageContentsTh = 120

#cv2.imshow('ContentsBox', capturedImage )

capturedImage1 = np.array(sct.grab(componentsbox1))
capturedImage1 = cv2.cvtColor(capturedImage1, cv2.COLOR_BGR2GRAY)

checkContentsImage(capturedImage1, 1, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage2 = np.array(sct.grab(componentsbox2))
capturedImage2 = cv2.cvtColor(capturedImage2, cv2.COLOR_BGR2GRAY)

checkContentsImage(capturedImage2, 2, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage3 = np.array(sct.grab(componentsbox3))
capturedImage3 = cv2.cvtColor(capturedImage3, cv2.COLOR_BGR2GRAY)

checkContentsImage(capturedImage3, 3, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage4 = np.array(sct.grab(componentsbox4))
capturedImage4 = cv2.cvtColor(capturedImage4, cv2.COLOR_BGR2GRAY)


checkContentsImage(capturedImage4, 4, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage5 = np.array(sct.grab(componentsbox5))
capturedImage5 = cv2.cvtColor(capturedImage5, cv2.COLOR_BGR2GRAY)



checkContentsImage(capturedImage5, 5, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage6 = np.array(sct.grab(componentsbox6))
capturedImage6 = cv2.cvtColor(capturedImage6, cv2.COLOR_BGR2GRAY)


checkContentsImage(capturedImage6, 6, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)

capturedImage7 = np.array(sct.grab(componentsbox7))
capturedImage7 = cv2.cvtColor(capturedImage7, cv2.COLOR_BGR2GRAY)


checkContentsImage(capturedImage7, 7, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)


capturedImage8 = np.array(sct.grab(componentsbox8))
capturedImage8 = cv2.cvtColor(capturedImage8, cv2.COLOR_BGR2GRAY)


checkContentsImage(capturedImage8, 8, imageContents1, imageContents2, imageContents3, imageContents4, capturedImage)


#Check Contents1
cv2.imshow('ContentsBox', capturedImage)

if cv2.waitKey(1000) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break

'Programming > Python' 카테고리의 다른 글

[Python/OpenCV] Near-Duplicate Image Detection #1  (0) 2020.06.02
[Python] List 정렬 프로그램 구현  (0) 2017.02.06
[Python 3.6] * 찍기  (0) 2017.02.02
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import time
import cv2
import numpy as np
from mss import mss


print("load finger png files...")
imageFinger1 = cv2.imread("finger1.png")
imageFinger2 = cv2.imread("finger2.png")
imageFinger3 = cv2.imread("finger3.png")
imageFinger4 = cv2.imread("finger4.png")
print("load finger png files... Done")


with mss() as sct:
mon1 = sct.monitors[1]
mon2 = sct.monitors[2]
mon3 = sct.monitors[3]
mon4 = sct.monitors[4]
box = {'top': mon4['top'] +400, 'left': mon4['left'] + 200, 'width': 150, 'height': 190}
# mon = sct.monitors[0]
while True:
last_time = time.time()
capturedImage = np.array(sct.grab(box))
capturedImage = cv2.cvtColor(capturedImage, cv2.COLOR_BGRA2RGB)
imageFinger1 = cv2.cvtColor(imageFinger1, cv2.COLOR_BGRA2RGB)
imageFinger2 = cv2.cvtColor(imageFinger2, cv2.COLOR_BGRA2RGB)

#print('fps: {0}'.format(1 / (time.time()-last_time)))

#cv2.imshow('capturedImage', capturedImage)

difference = cv2.subtract(capturedImage, imageFinger1)
b, g, r = cv2.split(difference)
diff = cv2.countNonZero(b) + cv2.countNonZero(g) + cv2.countNonZero(r)
cv2.imshow('imageFinger1', difference)
print("png 1 diff = " + str(diff))
if diff == 0:
print("Detected finger png 1 !!!")
cv2.imshow('imageFinger1', difference )

difference = cv2.subtract(capturedImage, imageFinger2)
b, g, r = cv2.split(difference)
diff = cv2.countNonZero(b) + cv2.countNonZero(g) + cv2.countNonZero(r)
print("png b bbbb = " + str(b))
print("png b diff = " + str(cv2.countNonZero(b)))
print("png g diff = " + str(cv2.countNonZero(g)))
print("png r diff = " + str(cv2.countNonZero(r)))
cv2.imshow('imageFinger2', difference)
print("png 2 diff = " + str(diff))

if diff == 0:
print("Detected finger png 2 !!!")
cv2.imshow('imageFinger1', difference)


if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break




'Programming > Python' 카테고리의 다른 글

[Python/OpenCV] Near-Duplicate Image Detection #2  (0) 2020.06.02
[Python] List 정렬 프로그램 구현  (0) 2017.02.06
[Python 3.6] * 찍기  (0) 2017.02.02

[Python] List 정렬 프로그램 구현

Programming/Python 2017. 2. 6. 20:30 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Python] List 정렬 프로그램 구현





List 에 append 로 integer 값을 하나씩 넣은 후


오름차순 정렬하여 출력하는 프로그램








import sys

numberList =[]


for j in range(10):
    i = int(input("input: "))
    numberList.append(i)
    s1= 0
    print("Ori: {0}".format(numberList))
    while s1 < j:
        if numberList[s1] > numberList[s1+1]:
            numberList[s1] ^= numberList[s1+1]
            numberList[s1+1] ^= numberList[s1]
            numberList[s1] ^= numberList[s1+1]
        s1 = s1 + 1
    while s1 > 0:
        if numberList[s1] < numberList[s1-1]:
            numberList[s1] ^= numberList[s1-1]
            numberList[s1-1] ^= numberList[s1]
            numberList[s1] ^= numberList[s1-1]
        s1 = s1 - 1
    print("Sorted: {0}".format(numberList))

print(numberList)








import sys

numberList =[]
indexList =[]


for j in range(10):
    i = int(input("input: "))
    numberList.append(i)
    indexList.append(0)
    for k in range(len(numberList)-1):
        if i < numberList[k]:
            indexList[k] = indexList[k] + 1
        else:
            indexList[j] = indexList[j] + 1
    print("Ori: {0}".format(numberList))
    print("Sorted: {0}".format(indexList))
    for k1 in range(len(numberList)):
        for k2 in range(len(numberList)):
            if k1 == indexList[k2]:
                sys.stdout.write(str(numberList[k2]))
                sys.stdout.write(" ")
                break
    sys.stdout.write("\n")

print(numberList)






 

'Programming > Python' 카테고리의 다른 글

[Python/OpenCV] Near-Duplicate Image Detection #2  (0) 2020.06.02
[Python/OpenCV] Near-Duplicate Image Detection #1  (0) 2020.06.02
[Python 3.6] * 찍기  (0) 2017.02.02

[Python 3.6] * 찍기

Programming/Python 2017. 2. 2. 19:56 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Python 3.6] * 찍기




import sys

i = 0
k = 0
j = int(input("input: "))
while i < j :
    while k <= i :
        sys.stdout.write("*")
        k = k + 1
    i = i + 1
    k = 0
    sys.stdout.write("\n")

i = 0
while i < j - 1 :
    while k < j - i - 1:
        sys.stdout.write("*")
        k = k + 1
    i = i + 1
    k = 0
    sys.stdout.write("\n")





input: 3

*

**

***

**

*