Пример #1
0
CB_Vector3D CB_Camera::getActualPosition()
{
    CB_Vector3D camFL = CB_Vector3D(0, 0, getFocalLength());
    CB_Quaternion quat = getRotation();
    CB_Vector3D camPos = getPosition();
    CB_Vector3D camVec = camPos + quat * camFL * camFL.length();
    return camVec;
}
Пример #2
0
QStringList *ExifReaderWriter::readExifInfo(QString pictureName, FormatHandler *formatH)
{
    QStringList *exifList = new QStringList;

    Exiv2::Image::AutoPtr image = openExif(pictureName);
    if(image.get() == 0)
        return exifList;
    Exiv2::ExifData &exifData = image->exifData();
    if (exifData.empty()) {
        //nejsou exif data
        return exifList;
    }


    //cteniGPS souradnic
    double lat = readLatLon("Exif.GPSInfo.GPSLatitude", exifData);
    double lon = readLatLon("Exif.GPSInfo.GPSLongitude", exifData);
    double alt = readAltitude("Exif.GPSInfo.GPSAltitude", exifData);
    ////////////////////////////

    //cteni data
    QDateTime *dateTime = NULL;
    if((dateTime = readExifDate(exifData,"Exif.Photo.DateTimeOriginal")) == NULL)
        if((dateTime = readExifDate(exifData,"Exif.Image.DateTimeOriginal")) == NULL)
            if((dateTime = readExifDate(exifData,"Exif.Photo.DateTimeDigitized")) == NULL)
                dateTime = readExifDate(exifData,"Exif.Image.DateTime");


    ////////////////////
    QString cameraMake = readExifItem(exifData, "Exif.Image.Make");
    QString cameraModel = readExifItem(exifData, "Exif.Image.Model");
    QString imageSize = readExifItem(exifData, "Exif.Photo.PixelXDimension")
                        +" x "
                        + readExifItem(exifData, "Exif.Photo.PixelYDimension");
    QString exposureTime = getExposureTime(exifData);
    QString flash = getFlash(exifData);
    //'5' flash fired but strobe return light not detected, '7' flash fired and strobe return light detected.
    QString meteringMode = getMeteringMode(exifData);
    QString fNumber = getFNumber(exifData);
    QString isoSpeed = readExifItem(exifData, "Exif.Photo.ISOSpeedRatings");
    QString focalLength = getFocalLength(exifData);
    QString comment = readExifItem(exifData, "Exif.Photo.UserComment");
    QString exposureBias = getExposureBias(exifData);
    QString exposureProgram = getExposureProgram(exifData);
    //////////////////
    (*exifList) << ((dateTime != NULL) ? dateTime->toString(formatH->formatDateTime) : "")
            << (lat < 1000 ?(formatH->gpsInFormat(lat) + (lat>=0 ? tr("N") : tr("S"))) : "")
            << (lon < 1000 ?(formatH->gpsInFormat(lon) + (lon>=0 ? tr("E") : tr("W"))) : "")
            << (alt > -999 ?(QString::number(alt) + tr(" m")) : "")
            << cameraMake
            << cameraModel
            << exposureTime
            << exposureBias
            << exposureProgram
            << imageSize
            << flash
            << fNumber
            << meteringMode
            << isoSpeed
            << focalLength
            << comment
            ;

    return exifList;

}
Пример #3
0
double QOpticalDevice::getNormalizedCoord(double u, double c)
{
    return (u - c)/getFocalLength();
}