cv2.cvtColor ()를 사용하지 않고 3 채널 이미지를 1 채널 이미지로 변환하는 방법은 무엇입니까?

Yash patil

그래서 각 픽셀의 가중 평균을 사용하여 BGR 이미지를 GRAYSCALE 로 변환하라는 요청을 받았습니다 .

img = cv2.imread('..\\Images\\horse.jpg',-1)
height = img.shape[0]
width = img.shape[1]
gray = img.copy()
for x in range(img.shape[1]):
  for y in range(img.shape[0]):
     gray[y][x]= (0.11 * img[y][x][0] + 0.6 * img[y][x][1] + 0.3 * img[y][x][2])



print(gray)
print(gray.shape)
cv2.imshow('gray',gray)
cv2.waitkey(0)

결과 이미지의 모양 :

(404, 640, 3)

단일 채널 이미지 여야합니다. 맞나요? 결과적으로 표시된 이미지는 GRAYSCALE이지만 여전히 3 채널 이미지입니다. 누구든지 도와 줄 수 있습니까?

안와르 빅

그 이유는 매우 간단 img합니다. 처음에는 세 개의 채널이 있는 전체를 복사했기 때문 입니다. 다음과 같이 하나의 채널 만 복사하면됩니다.

gray = img[:, :, 0].copy()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관