1
난에서 다음 함수 C를 찾기 위해 시도하고 CImg승산 C++에서 CIMG과 추가 화상
C = B * 리터 + (1-B)를 (S) C, L 및 S는 모두
같은 크기의 RGB 이미지 (B는 단일 채널 그레이 스케일 매트)
픽셀을 반복하는 방법을 알아낼 수 없습니다. 나는 다음과 같은 코드를 보았다 :
cimg_forXYZ(S,x,y,z) {... }
그러나 내가 전에는 어떤 종류의 구문을 본 적이 없다. 매크로 일 수 있는가?
모든 의견을 환영합니다.
#define cimg_forXY(img,x,y) cimg_forY(img,y) cimg_forX(img,x)
#define cimg_forX(img,x) for (int x=0; x<(int)((img).width); ++x)
#define cimg_forY(img,y) for (int y=0; y<(int)((img).height); ++y)
#define cimg_forZ(img,z) for (int z=0; z<(int)((img).depth); ++z)
#define cimg_forXYZ(img,x,y,z) cimg_forZ(img,z) cimg_forXY(img,x,y)
다음 루프있을 것이라는 점을 의미합니다 : 당신은 CIMG 헤더에 보면
감사합니다. 몇 가지 사항이 정리되었습니다. 여전히 잘못된/일관성없는 결과를 얻는 것 같습니다. 아마도 다른 질문을 게시해야합니다. – zenna
비트 심도 문제로 인해 결과가 잘못되거나 일관되지 않을 수 있습니다. 예를 들어, float 이미지 이외의 다른 것들을 사용하면 그 곱셈은 쉽게 이상하고 나쁜 것을 할 수 있습니다 (예 :주의하지 않으면 바이트 이미지가 쉽게 오버 플로우됩니다). – mmr