error: (-5) When the input arrays in add/subtract/multiply/divide functions have different types

1468 단어 openCV
error: (-5) When the input arrays in add/subtract/multiply/divide functions have different types, the output array type must be explicitly specified in function arithm_op
OpenCV 함수 활용
void addWeighted(InputArray src1, double alpha, InputArray src2,
                              double beta, double gamma, OutputArray dst, int dtype=-1);


두 장의 사진을 병합할 때 다음과 같은 오류가 발생했습니다.
error: (-5) When the input arrays in add/subtract/multiply/divide functions have different types,
 the output array type must be explicitly specified in function arithm_op


입력 배열이 다른 유형이기 때문입니다.
addweighted () 함수 첫 번째 매개 변수: src1, 가중 조작을 하는 첫 번째 이미지 대상, 즉 그림 1을 입력하기 때문입니다.두 번째 매개 변수:double형의alpha는 첫 번째 이미지의 가중 계수, 즉 이미지 1의 융합 비율을 나타낸다.세 번째 매개 변수: src2, 가중 조작을 하는 두 번째 이미지 대상, 즉 그림 2를 입력합니다.네 번째 매개 변수: 더블형 베타는 두 번째 이미지의 가중 계수, 즉 이미지 2의 융합 비율을 나타낸다.많은 경우 알파+베타=1.0과 관련이 있다.다섯 번째 매개 변수: 더블형gamma는 가중치와 후의 이미지에 작용하는 표량을 나타내고 가중치와 후의 이미지의 편이량으로 이해할 수 있다.여섯 번째 매개 변수: dst, 두 이미지의 가중치와 후의 이미지를 나타냅니다. 사이즈와 이미지 형식은 src1과 src2와 같습니다. 즉, 출력 이미지입니다.일곱 번째 매개 변수: 출력 패턴의 선택 깊이로 기본값 -1이 있습니다.두 입력 그룹이 같은 깊이를 가지고 있을 때, 이 매개 변수는 -1(기본값)으로 설정됩니다. 즉, src1과 같습니다.depth().
그래서 제가 원래 코드를
// addWeighted() 
  addWeighted(img, 0.5, img_sobel, 0.5, 0., img);

다음으로 변경:
// addWeighted() 
  addWeighted(img, 0.5, img_sobel, 0.5, 0., img, CV_32F);

원래의 두 그림의 깊이가 다르니 지금은 깊이의 한정값을 더하면 된다.

좋은 웹페이지 즐겨찾기