2017-11-25 3 views
0

고정 색상 (예 : RGB = 255의 순수한 빨강)으로 테두리 상자를 그릴 때 이미지 편집기 (예 : MS 페인트 또는 paint.net)를 사용하려고합니다. , 0, 0)을 저장하고 나중에이 RGB 값 (또는 BGR 값이 0, 0, 255)을 가진 픽셀을 찾아서 python (예 : opencv imread)에서 이미지를로드하여 객체 검색 목적으로 레이블을 만들 수 있습니다 .imwrite 후 이미지 픽셀 값 및/또는 python opencv에서 imread

그러나 이미지를 저장하고로드 한 후에는 RGB 또는 BGR 값이있는 픽셀이 표시되지 않습니다. 대신, 이러한 픽셀은 내가 지정한 것과 멀리 떨어져있을 수있는 값의 범위 내에 있습니다.

는 또한 실험 목적을 위해이 같은 것을 사용하려고 :
cv2.rectangle(img_arr, (10, 10), (60, 60), (0, 0, 255), thickness=1) 

오른쪽이 문 다음에, 나는 값 (0, 0, 255)와 픽셀을 참조 할. 그때 cv2.imwrite을 실행하고 때이 같은 cv2.imread :

cv2.imwrite(full_path_name, img_arr) 

이상 :

img_arr = cv2.imread(full_path_name) 
나는이 새로운 img_arr에서 발견

는, 이러한 BGR 아무 어떤 픽셀이 어떤 값없는이 더. 문제가 무엇입니까?

개체 감지를위한 이미지에 레이블을 붙이는 문제로 되돌아 가면, 대부분의 개체가 마우스 동작을 감지하기 때문에 레이블링 도구를 사용하고 싶지는 않지만 개체 검색 작업은 텍스트 영역을 검색하는 것입니다. 이미지 분할 및 문자 인식의 나중 단계가 너무 어려울 정도로 매우 정확한 경계 상자. 따라서 경계 상자가 정확하고 검토 될 수 있도록 고정 방법을 선호합니다. 최종적으로 레이블을 만듭니다. 이 아이디어가 효과가 있습니까?

대단히 감사합니다!

+5

JPEG를 사용하고있는 것 같습니다. 손실이 있습니다. PNG를 사용해보십시오. –

+0

@ MarkSetchell의 제안에 따라. 임계 값을 사용하여 세그먼트 색 기반을 만들려고 시도합니다. 빨간색 값은 약 255이지만 순수한 255는 아닌 것처럼 보입니다. https : //opencv-srf.blogspot.com.au/2010/09/object-detection-using -color-seperation.html – crodriguezo

+0

@crodriguezo 답변 해 주셔서 감사합니다. –

답변

1

화상 처리 작업을위한 중간 저장 공간으로 JPEG을 사용하는 경우 손실 형식이므로주의해야하고 이후에 다시 읽을 때 값이 다를 수 있습니다.

아마도 중간 저장을 위해 무손실 PNG 형식을 사용하는 것을 고려하십시오. 또는 NetPBM PGM (그레이 스케일) 또는 PPM (컬러) 형식을 사용하여 특히 간단한 형식으로 읽고 쓸 수 있습니다. 그러나 저작권이나 EXIF ​​데이터와 같은 메타 데이터를 유지할 수는 없습니다.

관련 문제