[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libcvd-members] libcvd Makefile.in cvd/documentation.h cvd/imag...
From: |
Edward Rosten |
Subject: |
[libcvd-members] libcvd Makefile.in cvd/documentation.h cvd/imag... |
Date: |
Fri, 01 Apr 2011 17:18:21 +0000 |
CVSROOT: /cvsroot/libcvd
Module name: libcvd
Changes by: Edward Rosten <edrosten> 11/04/01 17:18:21
Modified files:
. : Makefile.in
cvd : documentation.h image_io.h
cvd/internal : load_and_save.h
cvd/internal/io: bmp.h cvdimage.h fits.h jpeg.h png.h pnm_grok.h
text.h tiff.h
pnm_src : cvdimage.cxx fits.cc jpeg.cxx png.cc
pnm_grok.cxx text.cxx tiff.cxx
Log message:
Convert BMP reader to new reader system. Conversion of image reading
now complete. BMP writer remains.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/Makefile.in?cvsroot=libcvd&r1=1.95&r2=1.96
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/documentation.h?cvsroot=libcvd&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/image_io.h?cvsroot=libcvd&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/load_and_save.h?cvsroot=libcvd&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/bmp.h?cvsroot=libcvd&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/cvdimage.h?cvsroot=libcvd&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/fits.h?cvsroot=libcvd&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/jpeg.h?cvsroot=libcvd&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/png.h?cvsroot=libcvd&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/pnm_grok.h?cvsroot=libcvd&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/text.h?cvsroot=libcvd&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/internal/io/tiff.h?cvsroot=libcvd&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/cvdimage.cxx?cvsroot=libcvd&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/fits.cc?cvsroot=libcvd&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/jpeg.cxx?cvsroot=libcvd&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/png.cc?cvsroot=libcvd&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/pnm_grok.cxx?cvsroot=libcvd&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/text.cxx?cvsroot=libcvd&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/libcvd/pnm_src/tiff.cxx?cvsroot=libcvd&r1=1.18&r2=1.19
Patches:
Index: Makefile.in
===================================================================
RCS file: /cvsroot/libcvd/libcvd/Makefile.in,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- Makefile.in 6 Dec 2010 16:40:21 -0000 1.95
+++ Makefile.in 1 Apr 2011 17:18:20 -0000 1.96
@@ -97,6 +97,7 @@
cvd_src/yuv420.o \
pnm_src/pnm_grok.o \
pnm_src/bmp.o \
+ pnm_src/bmp_read.o \
pnm_src/cvdimage.o \
pnm_src/fits.o \
pnm_src/fitswrite.o \
Index: cvd/documentation.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/documentation.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- cvd/documentation.h 5 Aug 2009 14:59:09 -0000 1.28
+++ cvd/documentation.h 1 Apr 2011 17:18:20 -0000 1.29
@@ -97,7 +97,7 @@
\section Portability
LibCVD will compile on any reasonable unixy environment, with a reasonable
- C++ compiler (e.g. gcc version >= 3.1) and GNU Make. Additionally, libCVD
+ C++ compiler, with TR1 and GNU Make. Additionally, libCVD
supports both normal and cross compilers. It is known to work on:
-Well tested (current):
@@ -162,6 +162,8 @@
- @c LIBDIR contains library files. libcvd static libraries (debug and
release verions) will be copied into @c \%LIBDIR\%
- @c BINDIR is not used for libcvd, but would be the default directory
for DLLs
+libCVD requires the <a
href="http://www.microsoft.com/downloads/en/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en">Visual
Studio feature pack for TR1</a> support.
+
libCVD requires at least two libraries to compile:
- pthreads-win32 at http://sourceware.org/pthreads-win32/
- jpeg-7 at http://www.ijg.org/
Index: cvd/image_io.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/image_io.h,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
--- cvd/image_io.h 18 Nov 2010 21:47:53 -0000 1.45
+++ cvd/image_io.h 1 Apr 2011 17:18:20 -0000 1.46
@@ -248,7 +248,7 @@
CVD::Internal::readImage<I, PNG::png_reader>(im, i);
#endif
else if(c == 'B')
- BMP::readBMP(im, i);
+ CVD::Internal::readImage<I, BMP::Reader>(im, i);
else if(c == 'S')
CVD::Internal::readImage<I, FITS::reader>(im, i);
else if(c == 'C')
Index: cvd/internal/load_and_save.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/load_and_save.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- cvd/internal/load_and_save.h 12 Nov 2010 14:07:31 -0000 1.20
+++ cvd/internal/load_and_save.h 1 Apr 2011 17:18:20 -0000 1.21
@@ -189,7 +189,14 @@
for(int row = 0; row < r.size().y; row++)
{
r.get_raw_pixel_line(rowbuf.data());
- Pixel::ConvertPixels<DiskPixelType,
PixelType>::convert(rowbuf.data(), im[row], r.size().x);
+ PixelType* rowptr;
+
+ if(r.top_row_first())
+ rowptr = im[row];
+ else
+ rowptr = im[im.size().y -
row-1];
+
+ Pixel::ConvertPixels<DiskPixelType,
PixelType>::convert(rowbuf.data(), rowptr, r.size().x);
}
}
};
@@ -199,7 +206,10 @@
static void exec(SubImage<PixelType>& im, ImageLoader&
r)
{
for(int row = 0; row < r.size().y; row++)
+ if(r.top_row_first())
r.get_raw_pixel_line(im[row]);
+ else
+
r.get_raw_pixel_line(im[im.size().y - row-1]);
}
};
@@ -208,11 +218,7 @@
static void exec(BasicImage<PixelType>& im,
ImageLoader& r)
{
Image<DiskPixelType> imgbuf(r.size());
-
- for(int row = 0; row < r.size().y; row++)
- {
- r.get_raw_pixel_line(imgbuf[row]);
- }
+
read_and_maybe_process<DiskPixelType,DiskPixelType, ImageLoader>::exec(imgbuf,
r);
convert_image(imgbuf, im);
}
Index: cvd/internal/io/bmp.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/bmp.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- cvd/internal/io/bmp.h 12 Jun 2008 13:04:14 -0000 1.8
+++ cvd/internal/io/bmp.h 1 Apr 2011 17:18:21 -0000 1.9
@@ -34,90 +34,70 @@
namespace CVD {
namespace BMP {
- void writeBMPHeader(unsigned int width, unsigned int height, unsigned int
channels, std::ostream& out);
- void readBMPHeader(unsigned int& width, unsigned int& height, unsigned
int& channels, unsigned int& compression, std::istream& in);
-
- template <class T, int Channels> struct BMPReader;
+ using Internal::TypeList;
+ using Internal::Head;
- template <class T> struct BMPReader<T,1> {
- static void read(Image<T>& im, std::istream& in) {
- Internal::simple_vector<Rgb<byte> > palette(256);
- bool notgray = false;
- for (int i=0; i<256; i++) {
- byte buf[4];
- in.read((char*)buf,4);
- palette[i].red = buf[2];
- palette[i].green = buf[1];
- palette[i].blue = buf[0];
- if (buf[0] != i || buf[0] != buf[1] || buf[1] != buf[2])
- notgray = true;
- }
- size_t rowSize = im.size().x;
- if (rowSize % 4)
- rowSize += 4 - (rowSize%4);
- Internal::simple_vector<byte> rowbuf(rowSize);
+ class ReadPimpl;
+ class Reader
+ {
+ public:
+ Reader(std::istream& i);
+ ~Reader();
+
+ ImageRef size();
+ bool top_row_first();
+
+ void get_raw_pixel_line(unsigned char*);
+ void get_raw_pixel_line(Rgb<unsigned char>*);
+
+ std::string datatype();
+ std::string name();
+
+ typedef TypeList<byte,
+ TypeList<Rgb<byte>,
+ Head> >
Types;
- if (notgray) {
- std::cerr << "not gray" << std::endl;
- Internal::simple_vector<T> cvt(256);
- Pixel::ConvertPixels<Rgb<byte>,T>::convert(&palette[0], &cvt[0], 256);
- for (int r=im.size().y-1; r>=0; r--) {
- in.read((char*)&rowbuf[0], static_cast<std::streamsize>(rowSize));
- for (int c=0; c<im.size().x; c++)
- im[r][c] = cvt[rowbuf[c]];
- }
- } else {
- for (int r=im.size().y-1; r>=0; r--) {
- in.read((char*)&rowbuf[0], static_cast<std::streamsize>(rowSize));
- Pixel::ConvertPixels<byte,T>::convert(&rowbuf[0], im[r],
im.size().x);
- }
- }
- }
+ private:
+ std::auto_ptr<ReadPimpl> t;
};
- template <class T> struct BMPReader<T,3> {
- static void read(Image<T>& im, std::istream& in) {
- size_t rowSize = im.size().x*3;
- if (rowSize % 4)
- rowSize += 4 - (rowSize%4);
- Internal::simple_vector<byte> rowbuf(rowSize);
- for (int r=im.size().y-1; r>=0; r--) {
- in.read((char*)&rowbuf[0], static_cast<std::streamsize>(rowSize));
- for (int c=0; c<im.size().x*3; c+=3) {
- byte tmp = rowbuf[c];
- rowbuf[c] = rowbuf[c+2];
- rowbuf[c+2] = tmp;
- }
- Pixel::ConvertPixels<Rgb<byte>, T>::convert((Rgb<byte>*)&rowbuf[0],
im[r], im.size().x);
- }
- }
+/*
+ class WritePimpl;
+ class Writer
+ {
+ public:
+ Writer(std::ostream&, ImageRef size, const
std::string& type, const std::map<std::string, Parameter<> >& p);
+ ~Writer();
+
+ void write_raw_pixel_line(const byte*);
+ void write_raw_pixel_line(const Rgb<byte>*);
+
+ template<class Incoming> struct Outgoing
+ {
+ typedef byte type;
};
- template <class T> void readBMP(Image<T>& im, std::istream& in) {
- unsigned int w,h,ch, comp;
- readBMPHeader(w,h,ch,comp,in);
+ protected:
+ std::auto_ptr<WritePimpl> t;
+ };
- im.resize(ImageRef(w,h));
- if (ch == 1)
- BMPReader<T,1>::read(im, in);
- else
- BMPReader<T,3>::read(im,in);
- }
+ template<class C> struct Writer::Outgoing<Rgb<C> >
+ {
+ typedef Rgb<byte> type;
+ };
- template <class T> void readBMP(BasicImage<T>& im, std::istream& in) {
- unsigned int w,h,ch, comp;
- readBMPHeader(w,h,ch,comp,in);
- if (comp || (ch != 3 && ch != 1))
- throw CVD::Exceptions::Image_IO::UnsupportedImageType();
- ImageRef size(w, h);
- if(im.size() != size)
- throw Exceptions::Image_IO::ImageSizeMismatch(size, im.size());
+ template<class C> struct Writer::Outgoing<Rgba<C> >
+ {
+ typedef Rgb<byte> type;
+ };
- if (ch == 1)
- BMPReader<T,1>::read(im, in);
- else
- BMPReader<T,3>::read(im,in);
- }
+ template<> struct Writer::Outgoing<Rgb8>
+ {
+ typedef Rgb<byte> type;
+ };
+*/
+
+ void writeBMPHeader(unsigned int width, unsigned int height,
unsigned int channels, std::ostream& out);
template <class T, int Channels> struct BMPWriter;
template <class T> struct BMPWriter<T,1> {
Index: cvd/internal/io/cvdimage.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/cvdimage.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- cvd/internal/io/cvdimage.h 21 Mar 2010 19:02:02 -0000 1.3
+++ cvd/internal/io/cvdimage.h 1 Apr 2011 17:18:21 -0000 1.4
@@ -49,6 +49,7 @@
~reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(unsigned char*);
void get_raw_pixel_line(bayer_bggr*);
Index: cvd/internal/io/fits.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/fits.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- cvd/internal/io/fits.h 21 Mar 2010 19:02:02 -0000 1.5
+++ cvd/internal/io/fits.h 1 Apr 2011 17:18:21 -0000 1.6
@@ -52,6 +52,7 @@
~reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(unsigned char*);
void get_raw_pixel_line(signed short*);
Index: cvd/internal/io/jpeg.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/jpeg.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- cvd/internal/io/jpeg.h 21 Mar 2010 19:02:02 -0000 1.8
+++ cvd/internal/io/jpeg.h 1 Apr 2011 17:18:21 -0000 1.9
@@ -48,6 +48,7 @@
~reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(unsigned char*);
void get_raw_pixel_line(Rgb<unsigned char>*);
Index: cvd/internal/io/png.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/png.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- cvd/internal/io/png.h 5 Nov 2010 15:09:52 -0000 1.11
+++ cvd/internal/io/png.h 1 Apr 2011 17:18:21 -0000 1.12
@@ -49,6 +49,7 @@
~png_reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(bool*);
void get_raw_pixel_line(unsigned char*);
Index: cvd/internal/io/pnm_grok.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/pnm_grok.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- cvd/internal/io/pnm_grok.h 18 Nov 2010 21:47:53 -0000 1.11
+++ cvd/internal/io/pnm_grok.h 1 Apr 2011 17:18:21 -0000 1.12
@@ -43,6 +43,7 @@
~Reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(bool*);
void get_raw_pixel_line(unsigned char*);
Index: cvd/internal/io/text.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/text.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- cvd/internal/io/text.h 21 Mar 2010 19:02:03 -0000 1.2
+++ cvd/internal/io/text.h 1 Apr 2011 17:18:21 -0000 1.3
@@ -44,6 +44,7 @@
~reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(double*);
Index: cvd/internal/io/tiff.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/internal/io/tiff.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- cvd/internal/io/tiff.h 21 Mar 2010 19:02:03 -0000 1.12
+++ cvd/internal/io/tiff.h 1 Apr 2011 17:18:21 -0000 1.13
@@ -50,6 +50,7 @@
~tiff_reader();
ImageRef size();
+ bool top_row_first();
void get_raw_pixel_line(bool*);
void get_raw_pixel_line(unsigned char*);
Index: pnm_src/cvdimage.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/cvdimage.cxx,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- pnm_src/cvdimage.cxx 29 Apr 2010 16:07:17 -0000 1.6
+++ pnm_src/cvdimage.cxx 1 Apr 2011 17:18:21 -0000 1.7
@@ -543,6 +543,10 @@
{
return "CVD";
}
+bool reader::top_row_first()
+{
+ return true;
+}
reader::~reader()
{}
Index: pnm_src/fits.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/fits.cc,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- pnm_src/fits.cc 15 Apr 2010 11:24:29 -0000 1.7
+++ pnm_src/fits.cc 1 Apr 2011 17:18:21 -0000 1.8
@@ -409,6 +409,11 @@
return t->size();
};
+bool reader::top_row_first()
+{
+ return true;
+}
+
//Mechanically generate the pixel reading calls.
#define GEN1(X) void reader::get_raw_pixel_line(X*d){t->get_raw_pixel_line(d);}
#define GEN3(X) GEN1(X) GEN1(Rgb<X>) GEN1(Rgba<X>)
Index: pnm_src/jpeg.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/jpeg.cxx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- pnm_src/jpeg.cxx 21 Mar 2010 19:02:03 -0000 1.14
+++ pnm_src/jpeg.cxx 1 Apr 2011 17:18:21 -0000 1.15
@@ -85,6 +85,10 @@
{
t->get_raw_pixel_line(d);
}
+bool reader::top_row_first()
+{
+ return true;
+}
string reader::datatype()
{
Index: pnm_src/png.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/png.cc,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- pnm_src/png.cc 5 Nov 2010 16:31:29 -0000 1.15
+++ pnm_src/png.cc 1 Apr 2011 17:18:21 -0000 1.16
@@ -311,6 +311,10 @@
}
+bool png_reader::top_row_first()
+{
+ return true;
+}
//Mechanically generate the pixel reading calls.
#define GEN1(X) void png_reader::get_raw_pixel_line(X*d){p->read_pixels(d);}
#define GEN3(X) GEN1(X) GEN1(Rgb<X>) GEN1(Rgba<X>)
Index: pnm_src/pnm_grok.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/pnm_grok.cxx,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- pnm_src/pnm_grok.cxx 18 Nov 2010 21:47:54 -0000 1.14
+++ pnm_src/pnm_grok.cxx 1 Apr 2011 17:18:21 -0000 1.15
@@ -502,6 +502,10 @@
return p->datatype();
}
+ bool Reader::top_row_first()
+ {
+ return true;
+ }
string Reader::name()
{
return "PNM";
Index: pnm_src/text.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/text.cxx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- pnm_src/text.cxx 26 Jan 2009 15:16:42 -0000 1.1
+++ pnm_src/text.cxx 1 Apr 2011 17:18:21 -0000 1.2
@@ -135,6 +135,10 @@
return t->datatype();
}
+bool reader::top_row_first()
+{
+ return true;
+}
string reader::name()
{
return "TEXT";
Index: pnm_src/tiff.cxx
===================================================================
RCS file: /cvsroot/libcvd/libcvd/pnm_src/tiff.cxx,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- pnm_src/tiff.cxx 10 Jan 2011 15:53:42 -0000 1.18
+++ pnm_src/tiff.cxx 1 Apr 2011 17:18:21 -0000 1.19
@@ -418,6 +418,10 @@
return "TIFF";
}
+bool tiff_reader::top_row_first()
+{
+ return true;
+};
ImageRef tiff_reader::size()
{
return t->size();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libcvd-members] libcvd Makefile.in cvd/documentation.h cvd/imag...,
Edward Rosten <=