2017-11-20 4 views
-2

그래서 다른 이미지가 있고 이미지에서 실행해야하며 함수에서 변수로 주어진 색상으로 첫 번째로 가장 큰 사각형을 찾아야합니다 . (예를 들어 동일한 양의 픽셀로 2 제곱이 있고 첫 번째 사각형이 선택된 경우)이미지에서 첫 번째로 큰 sqaure 찾기 (외부 라이브러리 없음)

이것은해야 할 임무입니다. 그러나 나는 갇혀 있고 어떻게 해야할지 모르겠습니다. 결과 :(우리는 파일 immagini에서 함수의 부하를 사용하여

파일 이름 = 이미지 이름

C = RGB 코드

내 코드는 다음과 같습니다..

from immagini import * 

def quadrato(filename,c): 
#Get image from the user (load image)  
img = load(filename) 

#print(img[y][x][r,g,b]) 
#Loop trough the image 
#Get the width and height of the image 

counter = [] 

for y in range(0, len(img[:])): 
    for x in range(0, len(img[y][:])): 
     #Scan for the R #Scan for the G #Scan for the B 
     #If detecs all RGB are the same from the input 
     if img[y][x][0] == c[0] and img[y][x][1] == c[1] and img[y][x][2] == c[2]: 
      counter.append((x,y)) 
print (((len(counter)), (x ,y),img[y][x])) 

그래서 내 코드는 요청 된 색상, 픽셀의 위치 및 색상으로 얼마나 많은 픽셀을 인쇄합니다.

예를

The input ('Img1.png',(255,0,0)) , The output must be (30, (60, 50))

The input ('Img2.png',(0,0,255)) , The output must be (201,(54,240))

난 당신이 나를 이해 희망 너희들을 감사합니다 (sqaure의 픽셀 (x, y)의 위치의 수), 그것은 조금 어렵다 나를 설명하기 위해, 게시물에 문제가있는 경우 나에게 말해 :

+0

첫 번째 사각형은 무엇입니까? 당신은 그걸 정의해야만합니다 ... – Piglet

+0

첫 번째 사각형은 예를 들어 같은 양의 픽셀 (같은 색)을 가진 2 개의 사각형이 있다고 말하면서 의미합니다 : 그림을 보시오 : [link] (https :///0.stack.imgur.com/K5F7f.png 입력 ('Ist1.png', (255,0,0)) 출력 (20, (30, 20)) 사각형은 20 픽셀이며 위치 302 감사합니다. – Kukuriku

+0

동일한 크기의 사각형이 두 개있는 경우 첫 번째 크기가 맞습니까? 당신이 하나를 정의하지 않으면 질서가 없습니다 ... 당신이 그런 defnition을 생각해 낼 수 없다면, 당신은 사물을 찾기위한 알고리즘을 개발할 수 없습니다. 그래서 펜과 종이를 가져 와서 생각하기 시작하십시오. – Piglet

답변

0

처음에는 수평선이 아닌 하나의 픽셀을 생각해야합니다.

y에 대해 연결된 줄의 목록을 만듭니다. 검색된 색상의 픽셀을 찾고 왼쪽 픽셀의 색상이 동일한 경우 마지막 행에 발견 된 픽셀을 추가하십시오.

그런 다음 y을 통해 동일한 시작 및 끝의 인접한 줄을 찾아서 그 가운데에서 사각형을 작성하십시오.