C++에서 이미지의 픽셀을 열고 읽는 방법? X, Y 형식으로 색을 읽으십시오.C++에서 이미지의 픽셀 읽기
답변
, 그것은 거의 모든 것을 갖추고 있습니다 이미지로 작업해야합니다.
OpenCV 2.0은 몇 달 전에 출시되었으며 C++과 매우 친숙합니다.
OpenCV는 단지 이미지를 읽는 것보다 과잉입니다. –
예, 큰 도서관입니다. 독서/작문 이외의 다른 일을하고 싶다면 옵션으로 사용하고 있습니다. 익숙해지면 좋을 것입니다. – rem7
DevIL (http://openil.sourceforge.net/)과 같은 라이브러리를 사용하십시오. DevIL은 이미지 데이터를 배열에로드하고 ilGetPixels() 등과 같은 함수를 사용하여 원시 픽셀 데이터에 액세스 할 수 있습니다.
DevIL도 OpenGL을 지원합니다.
s/ilGetPixels()/ilGetData() –
BMP는 놀라 울 정도로 간단합니다. 압축되지 않은 BMP는 헤더, BMP에 대한 정보, 컬러 팔레트 (해당되는 경우) 및 비트 맵 데이터로 구성됩니다 (픽셀 단위). 8 비트, RLE 압축 등 모든 기능을 처리하는 많은 추가 작업이 있지만 자신의 비트 맵 파서를 작성하는 것은 재미있는 일입니다.
가장 좋은 방법은 라이브러리를 사용하는 것입니다. Image Magick에는 거의 모든 이미지 형식을 열고 픽셀에 액세스 할 수있게 해주는 C 라이브러리가 있습니다. SDL_image은 사용하기 쉽고 SDL을 OpenGL과 함께 쉽게 사용할 수있는 또 다른 라이브러리입니다.
사용해야하는 이미지 형식은 응용 프로그램에 따라 다릅니다. JPG는 꽤 좋은 압축률을 가지고 있지만, 압축은 LOSSY입니다. 이미지에 텍스트가 있거나 단색 또는 가장자리가 넓은 영역 (예 : 만화)이 좋지 않은 경우 눈에 띄는 유물이 생성됩니다. 사진의 경우 일반적으로 JPG가 좋습니다. PNG는 훌륭한 대안이지만 압축은되지만 압축은 LOSSLESS입니다. JPG는 일반적으로 PNG보다 작을 것이며, 둘 다 BMP보다 작을 것입니다.
기존 라이브러리를 사용하거나 직접 코드를 작성하십시오. 일반적으로 이미지 파일 형식이 표면에 보이는 것보다 더 복잡하기 때문에 첫 번째 방법이 더 좋습니다. 조심하지 않으면 이미지가 거꾸로되거나 색상 구성 요소 순서가 잘못 될 수 있습니다.
요구 사항에 따라 형식의 기능을 고려해야 할 수도 있습니다. 높은 동적 범위에 대한 지원이 흥미로운 경우 OpenEXR은 훌륭한 선택입니다. PNG와 같이 다른 프로그램 중에서 큰 지원을받지 못하기 때문에 불편할뿐입니다.
가 여기에 내가 자주 이미지를 읽고 쓸 필요로 할 때 켜 두 라이브러리입니다 libpng, 당신이 OpenCV의 라이브러리로 보일 것 이미지와 함께 일하기 위하여려고하는 경우에 OpenExr
우리는 이미지 생성에 libpng를 사용합니다. 정말 사용하기 쉽고 순수한 C++ 코드이므로 진절머리 나는 인터페이스를 다룰 필요가 없습니다. –
@Matthieu M .: libpng은 "순수 C++"로 작성되지 않았습니다. 그것은 Laserallan에 의해 링크 된 페이지에 명시된대로 C89로 작성되었습니다. – unwind
Magick++ 라이브러리
#include <Magick++.h>
#include <iostream>
using namespace Magick;
using namespace std;
int main(int argc, char **argv) {
try {
InitializeMagick(*argv);
Image img("C:/test.bmp");
ColorRGB rgb(img.pixelColor(0, 0)); // ie. pixel at pos x=0, y=0
cout << "red: " << rgb.red();
cout << ", green: " << rgb.green();
cout << ", blue: " << rgb.blue() << endl;
}
catch (Magick::Exception & error) {
cerr << "Caught Magick++ exception: " << error.what() << endl;
}
return 0;
}
- 1. iPhone에서 이미지의 픽셀 읽기 및 편집
- 2. UIImageView 이미지의 픽셀 값
- 3. 이미지의 검은 색 픽셀
- 4. 이미지의 픽셀 색상 얻기
- 5. 이미지의 픽셀 길이를 계산하십시오.
- 6. C++ 비트 맵 이미지의 픽셀 읽기 및 편집
- 7. C에서 두 이미지의 차이 추출 #
- 8. C에서 확장 이미지 속성 읽기
- 9. C에서 픽셀 수준의 이미지 조작
- 10. iPhone - 이미지의 픽셀 블록을 다른 픽셀 블록으로 바꾸기
- 11. PNG ++ 픽셀 색상 값 읽기
- 12. Ruby에서 픽셀 단위로 이미지 읽기
- 13. 이미지의 가장자리 픽셀 인 Pyglet이 감싸고 있습니다.
- 14. 이미지의 특정 픽셀 감지 및 지우기
- 15. MFC를 사용하여 비트 맵 이미지의 픽셀 조작
- 16. 이미지의 일부에 픽셀 쉐이더 효과 적용
- 17. Java에서 TIFF 이미지의 픽셀 값 가져 오기
- 18. 픽셀 색상 자바 스크립트를 사용하는 이미지의 값
- 19. 이미지의 픽셀 간 유클리드 거리를 측정하는 알고리즘
- 20. C에서 Excel 데이터 읽기
- 21. C에서 PDF 읽기 #
- 22. C에서 # .vcproj 파일 읽기
- 23. C에서 파일 읽기 (/ 쓰기)
- 24. C에서 이벤트 로그 읽기
- 25. C에서 Excel 파일 읽기
- 26. C에서 픽셀 단위로 이미지를 조작하는 방법?
- 27. C에서 파일 읽기, 무작위 오류
- 28. C에서 Outlook Express에서 메일 읽기
- 29. C에서 원자 읽기 - 수정 - 쓰기
- 30. C에서 배열로 텍스트 파일 읽기
특정 이미지 형식을 사용하여 이미지 파일에서 픽셀의 색상을 읽기? 형식이 다르면 라이브러리가 다릅니다. –
이미지의 형식은 무엇입니까? BMP? PNG? JPEG? –
아마 JPG 또는 BMP. OpenGL에서 추출되므로 아직 확실하지 않습니다. 그게 그렇게 중요한 건가? 그렇다면 어떤 것이 더 낫습니까? –