Fast Cross-Platform C/C++ 이미지 프로세싱 라이브러리
이미지 처리를 위한 교차 플랫폼 및 고성능 이미지 라이브러리(컬러/컬러 히스토그램 크기 조정 및 찾기)는 무엇입니까?gui 필요 없습니다.C/C++입니다.
지금까지 제가 알아봤습니다.
- OpenCV
- 부스트의 일부로서 GIL
- 데빌
- CImg
나의 질문들
- 위에 나열한 것들의 성능은 어떻습니까?
- 다른 라이브러리는 무엇입니까?
당신의 의견은 대단히 감사합니다.
OpenCV의 성능은 상당히 우수합니다.대부분의 경우 충분할 것입니다.
성능을 향상시키기 위해 Intel IPP와 함께 OpenCV를 사용할 수도 있습니다. 이 제품은 무료가 아닌 상용 제품입니다.OpenCV가 IPP가 설치된 것을 감지하면 가능한 경우 IPP를 사용합니다.
세 번째 옵션으로 IPP를 직접 사용할 수 있습니다.IPP는 (Intel 아키텍처에서) 고성능을 목표로 설계되었습니다.인텔 SIMD 명령을 사용하는 데 최적화되어 있습니다.
이미지 매직은 꽤 인기가 많습니다.
MVTec의 HALCON만큼 뛰어난 기능과 성능을 본 적이 없는 것 같습니다.그것은 모든 종류의 컴퓨터 비전과 이미지 처리 알고리즘을 즉시 제공하고 실제 사례를 많이 제공합니다.이 라이브러리는 알고리즘이 허용할 수 있는 만큼 멀티스레딩을 사용하고 사용 가능한 경우 GPU를 사용합니다.매우 크로스 플랫폼이며 C, C++, C# 등 여러 언어로 프로토타입 코드(알고리즘)를 내보낼 수 있는 환상적인 IDE를 제공합니다.
이 라이브러리의 가장 좋은 특징 중 하나는 지역 객체를 다루는 방법입니다.스토리지와 마스크 처리 모두에서 믿을 수 없을 정도로 스마트하고 효율적입니다.안타깝게도 OpenCV는 여기서 배울 점이 많습니다.
이 패키지의 가장 큰 문제는 가격(엄청나게 높은 가격)이지만 런타임 라이센스(예: SaaS)를 배포할 필요가 없는 프로젝트를 수행하는 경우에는 심각한 이미지 처리 및 컴퓨터 비전이 필요한 경우에는 더 이상 확인하지 마십시오.
CxImage를 잊지 마십시오. 전 세계적으로 배포된 그래픽 집약적인 휴대폰 응용 프로그램에서 전문적으로 사용한 적이 있습니다. 완벽하게 작동하고 기능이 매우 풍부합니다.꼭 확인해 보세요!
저는 자유로운 크로스 플랫폼 C/C++ 과학적 이미지 처리 라이브러리인 libvips를 유지하는 데 도움을 돕습니다.이것은 빠르고 매우 큰 이미지에서도 잘 작동합니다.
10,000 x 10,000픽셀 RGB 팁을 로드하고, 모든 에지에서 100픽셀을 잘라내고, 10%를 축소하고, 다시 저장하는 매우 간단한 벤치마크를 수행했습니다.적어도 이 사소한 테스트에서 빕스는 제가 시도한 다른 어떤 것보다 2배 이상 빠릅니다.
C++ API는 여기에 문서화되어 있습니다.예를 들어,
#include <vips/vips8>
using namespace vips;
int
main( int argc, char **argv )
{
// startup, load plugins, init support libraries, etc.
if (VIPS_INIT(argv[0]))
vips_error_exit(NULL);
// the "sequential" access hint means we plan to only read this image
// top-to-bottom (eg. no 90 degree rotates) ... this means libvips can
// stream the image and run decode and processing in
// parallel on separate threads
VImage image = VImage::new_from_file(argv[1],
VImage::option()->set("access", "sequential"));
// shrink to 20% and find the histogram
VImage hist = image.resize(0.2).hist_find();
hist.write_to_file(argv[2]);
return 0;
}
다음과 같은 입력 및 출력 이미지 형식으로 이 프로그램을 실행할 수 있습니다.
$ g++ -g -Wall resize.cpp `pkg-config vips-cpp --cflags --libs`
$ ./a.out ~/pics/wtc.jpg x.csv
그리고 JPG 입력을 읽고 히스토그램을 CSV 파일에 쓸 것입니다.
간편하고 무료인 오픈 소스 크로스 플랫폼 이미지 처리 라이브러리 심드가 있습니다.그 설명에 의하면 다음과 같습니다.
픽셀 포맷 변환, 이미지 스케일링 및 필터링, 이미지에서 통계 정보 추출, 모션 감지 등 이미지 처리에 유용한 고성능 알고리즘을 제공합니다.
알고리즘은 다양한 SIMD CPU 확장을 사용하여 최적화됩니다. SSE, SSE2, SSE4.1, SSE4.2, AVX, AVX2 및 AVX-512(x86/x64용), VMX(Altivec) 및 VSX(Power7), NEON(ARM용).
IM을 보고 싶으실 수도 있습니다.여러 플랫폼을 기반으로 구축되며, (모듈형) 이미지 파일 형식, 다양한 이미지 표현, 다양한 변환 및 연산자를 지원합니다.IM 라이브러리를 기반으로 영상 처리 연산자를 설명하기 위한 GUI 도구인 IMLab도 이용할 수 있습니다.
또한 VTK와 ITK가 있으며, 엄청난 양의 다양한 이미지 처리 알고리즘이 있습니다.
다음도 있습니다.
- 신호 및 영상 처리 기능을 제공하는 AMD Performance Library 기반 프레임웨이브
- ImageMagick에서 나온 GraphicsMagick 멀티 스레드 파생 모델
ExactImage는 빠른 C++ 이미지 처리 라이브러리입니다.다른 많은 라이브러리 프레임워크와 달리 기본적으로 여러 색 공간과 비트 깊이에서 작동이 가능하여 메모리 및 계산 요구 사항이 적습니다.
우리는 애큐소프트를 꽤 오랫동안 사용했지만, 매우 구체적인 이유로 윈도우에만 존재하는 LeadTools로 전환했습니다.애큐소프트는 리드 툴보다 인터페이스가 매우 명확하고 훨씬 잘 정의되어 있습니다.두 라이브러리 모두 매우 강력하며 두 라이브러리 모두 기존의 모든 파일 형식을 거의 모두 읽을 수 있다고 주장합니다.둘 다 상당히 반응이 좋은 지지를 받고 있습니다.
언급URL : https://stackoverflow.com/questions/796364/fast-cross-platform-c-c-image-processing-libraries
'it-source' 카테고리의 다른 글
ODBC 연결에 성공했지만 DSN 충돌 테스트 (0) | 2023.11.07 |
---|---|
각도 2: 유형 오류: AppComponent@4:44의 [{thing.title}]에서 l_thing0이 정의되지 않았습니다. (0) | 2023.11.07 |
JQuery: 크기 조정이 완료된 후에만 크기 조정 이벤트를 호출하는 방법은 무엇입니까? (0) | 2023.11.02 |
시간 성분이 없는 NSD 날짜 비교 (0) | 2023.11.02 |
Git 분기 및 Rails 마이그레이션 작업 방법 (0) | 2023.11.02 |