代码拉取完成,页面将自动刷新
FFmpegFrameGrabber.grab()
return non-audio/video streams as new Frame.DATA
type (pull #1378)FFmpegFrameRecorder.flush()
for HLS format and possibly others (pull #1374)IOException
thrown on FFmpegFrameGrabber.release()
(issue #911)Seekable
and SeekableByteArrayOutputStream
to be used with FFmpegFrameRecorder
(pull #1350)RealSense2FrameGrabber
with support for sensor options and fix for multiple devices (pull #1348)FFmpegFrameFilter
, FFmpegFrameGrabber
, and FFmpegFrameRecorder
with volatile boolean started
flag (pull #1325)FFmpegFrameFilter.push(null)
indicate EOF to audio filters as well (issue #1315)RealSense2FrameGrabber
to capture images with librealsense2 (pull #1316)FFmpegFrameGrabber
when maximumSize <= 0
(issue #1304)Pointer.retainReference()
to prevent PointerScope
from deallocating globally shared callback objects for FFmpegFFmpegFrameRecorder
failing to encode float
samples in MP3 (issue #1294)OpenCVFrameConverter
error in IPCameraFrameGrabber
(pull #1278)OpenCVFrameGrabber
and OpenCVFrameRecorder
with setOption()
(issue #1269)requires java.desktop
to module-info.java
(issue #1265)swscale
bug in FFmpegFrameGrabber
for images with unaligned width (issue #845)AVSEEK_SIZE
to FFmpegFrameGrabber
as required by MPEG-TS (issue #1234)start()
for already started FFmpegFrameFilter
, FFmpegFrameGrabber
, or FFmpegFrameRecorder
(issue #1233)Frame.timestamp
to FFmpegFrameFilter
(issue #1177)FFmpegFrameGrabber
to get all metadata from streams (issue #1180)FFmpegFrameRecorder
by setting deprecated AVStream.codec.time_base
(issue #1179)asetpts=N
to input of FFmpegFrameFilter
to make filters like afade
behave as expected (issue #1171)AVFormat.format()
from Frame.opaque
when available in FFmpegFrameFilter
and FFmpegFrameRecorder
(issue #1173)FFmpegFrameGrabber
and FFmpegFrameRecorder
(issue #1163)FFmpegFrameRecorder
and Java2DFrameConverter
by relying less on Buffer.position
(pull #1166)module-info.java
with JDK 8 and preserve backward compatibilityFFmpegFrameRecorder.closeOutputStream
and FFmpegFrameGrabber.closeInputStream
properties to leave streams opened (issue #1149)FFmpegFrameRecorder.flush()
method that does not release the stream (issue #1149)synchronized
blocks for FFmpegFrameGrabber
and FFmpegFrameRecorder
, but make unsafe methods public (issue #1139)Frame
using Pointer
to allow deallocation with PointerScope
(issue #1152)module-info.java
and depend on modularized JavaCPP Presets to comply with JPMSFrame
images with custom stridesBitmap.getRowBytes()
in AndroidFrameConverter.convert(Bitmap)
(issue #1143)static { Loader.load(); }
in LeptonicaFrameConverter
and OpenCVFrameConverter
to prevent link errors (issue #1128)FFmpegFrameGrabber(InputStream, int)
constructor to set the maximum cache size used for seekingpts
and dts
for AVPacket
in FFmpegFrameRecorder.recordPacket()
(pull #1097)LeptonicaFrameConverter
(issue bytedeco/javacpp#272) and OpenCVFrameConverter.IplImage
(issue #1101)OpenCVFrameGrabber
from crashing when in ImageMode.GRAY
FFmpegFrameFilter
(issue #955)FFmpegFrameRecorder
by setting deprecated AVStream.codec.time_base
(issue #1069)FFmpegFrameRecorder
on writePacket()
(issue #1068)imageScalingFlags
property to FrameGrabber
and FrameRecorder
, with SWS_BILINEAR
as default for FFmpeg (issue #845)OpenCVFrameConverter.ToOrgOpenCvCoreMat
to easily but efficiently get image data from official Java API of OpenCV (issue bytedeco/javacpp#38)PointerScope
(issue #911)Demo
class to use the C++ API of OpenCV (issue #1042)DeepLearningFaceDetection
(pull #1041) and PerspectiveWarpDemo
(pull #1066) samplesFFmpegFrameGrabber
to use accelerated decoders with videoCodecName
and audioCodecName
properties (pull #948)KazemiFacemarkExample
and LBFFacemarkExampleWithVideo
samples (pull #1030)apiPreference
constructor argument of VideoCapture
to OpenCVFrameGrabber
(pull #1025)LeptonicaFrameConverter
to easily but efficiently pass image data to Tesseract (issue bytedeco/javacpp-presets#224)RecordActivity
to fix issue with pixel formats (issue #979)FFmpegFrameFilter
to support negative strides returned by "vflip" (pull #977)FFmpegFrameFilter
on Mac throwing "Resource temporarily unavailable" (issue #974)JavaFXFrameConverter
(pull #969)FFmpegFrameGrabber.setTimestamp()
to previous version (pull #949)FFmpegFrameFilter
(issue #492)setpts=N
to input of FFmpegFrameFilter
to make fade
and overlay
filters behave as expected (issue #667)FFmpegFrameRecorder.stop()
when no audio samples are left to writeFFmpegFrameGrabber
(pull #908)maxBFrames
, trellis
, and maxDelay
properties to FFmpegFrameRecorder
(pull #939)FFmpegFrameGrabber.maxDelay
property (pull #938)RealSenseFrameGrabber.setFormat()
for compatibility (pull #922)FFmpegFrameGrabber.setTimestamp()
to avoid corrupted images (issue #896)FFmpegFrameRecorder
not flushing all audio samples properly (pull #886)FFmpegFrameFilter.pull()
(issue #887)FFmpegFrameGrabber.setTimestamp()
to avoid sync issues (pull #871)Map
from FrameGrabber
and FrameRecorder
(issue #858)FFmpegFrameGrabber(InputStream)
and FFmpegFrameRecorder(OutputStream)
thread-safeOpenCVFeatures2dSerialization
sample (pull #842)WebcamAndMicrophoneCapture
sample (issue #826)JavaFxPlayVideoAndAudio
sample to support FrameGrabber.sampleMode
property (issue #820)Frame.timestamp
field on FFmpegFrameGrabber.grab()
(pull #810)CaffeGooglenet.java
sample (pull #805)FFmpegFrameGrabber.setTimestamp()
from going into an infinite loop (issue #731)FFmpegFrameRecorder.record()
when called with AV_PIX_FMT_NV21
(pull #787)FFmpegLockCallback
to use more efficient thread-safe mechanisms (pull #770)FFmpegFrameGrabber
support streams with changing resolution (pull #769)DeinterlacedVideoPlayer
sample (pull #757)Java2DFrameConverter.cloneBufferedImage()
not copying the data (pull #739)OpenCVFrameConverter
always resets Frame.opaque
even when Pointer
is equal (issue deeplearning4j/DataVec#316)OutputStream
leak in FFmpegFrameRecorder
(pull #727)FFmpegFrameRecorder.stop()
to avoid potential race conditions (issue #700)src/main/java/cl/eye/CLCamera.java
to remove build dependency on external moduleFFmpegFrameGrabber(InputStream)
(pull #703)avdevice
module for FFmpegFrameRecorder
in the same way as with FFmpegFrameGrabber
FrameGrabber.sampleMode
property and have FFmpegFrameGrabber
convert audio samples to user-specified format (issue #18)ImageSegmentation
(pull #460) and FFmpegStreamingTimeout
(pull #712) samplesFlyCapture2FrameGrabber
(pull #655)OpenCVFrameGrabber.setFormat()
value to set FOURCC of VideoCapture
(pull #651)FaceRecognizer.predict()
in samples (issue #642)Java2DFrameUtils
to facilitate conversion between Frame
, BufferedImage
, IplImage
, and Mat
JavaFxPlayVideoAndAudio
sample (pull #618)FFmpegFrameFilter
, FFmpegFrameGrabber
and FFmpegFrameRecorder
(issue #607)FFmpegFrameGrabber.restart()
(issue #605)FFmpegFrameRecorder
pass options to the protocol as well (issue #598)RealSenseFrameGrabber
and OpenKinect2FrameGrabber
to FrameGrabber.list
to have them loaded by defaultpom.xml
fileFFmpegFrameGrabber(InputStream)
and FFmpegFrameRecorder(OutputStream)
constructors (issue #95)FrameFilter
, FrameGrabber
, and FrameRecorder
implement Closeable
to let us try-with-resourcesFFmpegFrameRecorder
OpenKinect2FrameGrabber
to capture images with libfreenect2 (pull #584)OpenKinectFrameGrabber.grabIR()
and stabilize RealSenseFrameGrabber
(pull #585)OpenCVFrameGrabber
(pull #575)FFmpegFrameFilter
to RecordActivity
sample for Android (pull #550)RealSenseFrameGrabber
to capture images with librealsense (pull #486)BioInspiredRetina.java
sample for the opencv_bioinspired
module (pull #505)JavaCV
class with appropriate documentation comments (issue #444)FFmpegFrameGrabber.setTimestamp()
on audio-only filesFFmpegFrameRecorder
(issue #410)AndroidFrameConverter
a bit and add a test (pull #379)DC1394FrameGrabber
on the Windows platform (issue bytedeco/procamcalib#4)AVPacket
in FFmpegFrameGrabber
and FFmpegFrameRecorder
to copy without re-encoding (issue #93)pom.xml
file to 3.0 (issue bytedeco/javacpp#93)PrincipalComponentAnalysis
sample (pull #373)OpenCVFrameRecorder
to use the new C++ VideoWriter
API (pull #370)OpenCVFrameGrabber
to use the new C++ VideoCapture
API (pull #361)CaffeGooglenet.java
sample for the opencv_dnn
module (pull #341)IPCameraFrameGrabber
and fix incorrectly reading some headers (pull #323, pull #345)InterruptedException
and throw appropriate exception in FrameGrabber.start()
(issue #315)IPCameraFrameGrabber.stop()
not checking for null (pull #300)FFmpegFrameFilter.push(null)
to indicate EOF, as required by some filters like "palettegen" (issue #287)cvHaarDetectObjects()
with CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH
instead of CV_HAAR_DO_CANNY_PRUNING
in the face detection samples to get acceptable performance with OpenCV 3.0 (issue #272)WakeLock
for keepScreenOn
in AndroidManifest.xml
file and add setPreviewDisplay()
call on surfaceChanged()
event for the RecordActivity
sample (pull #269, pull #271)FrameConverter
for images return null
when Frame.image == null
(issue #249)FFmpegLogCallback
to redirect easily to Java log messages from FFmpegFFmpegFrameGrabber.grabImage()
after setTimestamp()
(issue #236)FFmpegFrameGrabber.grabSamples()
to grab only audio samples, and ignore video frames (issue #235)setVideoCodecName()
and setAudioCodecName()
for FFmpegFrameRecorder
(issue #229)FaceRecognition.java
sample, which requires the deprecated opencv_legacy
module (issue #200)ObjectFinder
with FLANN (issue #210)FFmpegFrameFilter
to let users process Frame
images with libavfilter
easily (issue #164)FaceRecognizerInVideo.java
sample that does a combo of face detection and recognition (issue #203)AVStream.r_frame_rate
when AVStream.avg_frame_rate
is invalid in FFmpegFrameGrabber.getFrameRate()
(issue #292)FFmpegFrameRecorder.record(Frame frame, int pixelFormat)
method (issue #181)Java2DFrameConverter.copy()
from ByteBuffer
with 4 channels to BufferedImage.TYPE_INT_RGB
, among others, also taking into account the flipChannels
argument (issue #181)ObjectFinder
from SURF to AKAZEFFmpegFrameGrabber
by calling setImageWidth()
and setImageHeight()
before start()
RecordActivity
sample (pull #153)FrameConverter
(issue #150)FFmpegFrameRecorder
not saving the last few frames, especially when encoding with x264 (issue #50)FrameConverterTest
and fix a couple of bugs uncovered by itFrame implements Indexable
for easy and efficient access to image pixelsAbstractMethodError
thrown from OpenCVFrameConverter
on some versions of the JDK (issue #143)FFmpegFrameGrabber.grabImage()
method to restore the functionality previously provided by IplImage grab()
(issue #116)FFmpegFrameGrabber
and FFmpegFrameRecorder
access to more options and metadata (issue #132)FFmpegFrameGrabber
should grab from (issue #135)Java2DFrameConverter
when used with BufferedImage.TYPE_INT_RGB
or other types based on int
(issue #140)WebcamAndMicrophoneCapture
sample (pull #131)aspectRatio
property to FrameGrabber
and FrameRecorder
, to be able to use pixel aspect ratios other than 1.0 (issue #90)Square
sample, thanks to Geir RuudAndroidFrameConverter
, Java2DFrameConverter
and OpenCVFrameConverter
, and use them to refactor Frame
, CanvasFrame
, FrameGrabber
, and FrameRecorder
in a way to help users avoid coupling with Android, Java 2D, or OpenCV (issue #84)Demo
class in the README.md
file (issue #102)ColoredObjectTrack
sample (pull #99)option
property to FFmpegFrameGrabber
to let users set such things as "analyzeduration", "probesize", or "list_devices"time_base
warnings displayed by FFmpegFrameRecorder
(issue #75)TemplateMatching
sample, thanks to Waldemar NetoREADME.md
file for manual installation in Android StudioCvMat
and IplImage
functionality used in the Demo
class with new Indexer
API, and provide sample pom.xml
file for MavenFFmpegFrameGrabber.getFrameRate()
return AVStream.avg_frame_rate
instead of r_frame_rate
(issue #63)FlyCapture2FrameGrabber
with cross-platform support of FlyCapture2 (pull #45)CanvasFrame
from working on Mac OS X with recent versions of the JDK (issue #39 and issue #314)RecordActivity
sample with a continuous record loop, thanks to Federico Sendra and Juan Manuel SobralFrameGrabber.createDefault()
throw an exception on unsupported input, instead of returning a cryptic null
(issue #30)videoCodec
, videoBitrate
, audioCodec
, and audioBitrate
properties to FrameGrabber
avcodec
and avdevice
not loading properly for FFmpegFrameGrabber
and FFmpegFrameRecorder
(issue #24)FFmpegFrameRecorder
based on AVPacket
, not AVPicture
(pull #20)platform
property from pom.xml
, replaced with the platform.dependency
one in JavaCPP Presets (issue #10)RLSA
sample, thanks to Nicholas Woodward (issue #469)FFmpegFrameGrabber
that causes setFrameNumber()
to sometimes pick the wrong frame if FPS is not a proper divisor of 1000000 (issue #5)pom.xml
file by making it possible to specify a custom version of JavaCPPpom.xml
file (issue #2)OpenCVFaceRecognizer
sample, thanks to Petter Christian BjellandOpticalFlowDense
sample, thanks to Dawit Gebreyohannes (issue #468)FaceRecognition.java
sample (issue #1)FFmpegFrameRecorder
not refreshing the resampler when the format of samples changes (issue #465)com.googlecode.javacv.cpp
package to org.bytedeco.javacpp
, and com.googlecode.javacv
to org.bytedeco.javacv
ObjectFinder
not working with recent versions of OpenCV, especially on Android (issue #214)FrameRecorder.gopSize
property to let users set a desired GOP size instead of the default one of 12FFmpegFrameGrabber
now takes into account calls to setPixelFormat()
(issue #429), but does not enforce itFrame.audioChannels
field for resampling purposes in FFmpegFrameRecorder
(issue #388)FFmpegFrameRecorder
, fixed audio encoding with the Vorbis codec (issue #428) and the WebM container (issue #435), and other audio related thingsallocateArray()
constructors to CameraParams
and MatchesInfo
(issue #421)opencv_ocl
module as dependencyFFmpegFrameGrabber.setTimestamp()
(issue #417)stopRecording()
and onDestroy()
methods of the RecordActivity
sample, thanks to Jacob DuronFFmpegFrameGrabber.setTimestamp()
to its previous behavior (issue #413)samples/FaceApplet.jnlp
to make it work with JDK/JRE 7u45freenect
to reflect the latest changes of OpenKinect's master branchvideoInput
to reflect the latest changes in the "update2013" branchFrame.opaque
field to give access to the raw AVFrame
in the case of FFmpegFrameGrabber
(issue #399)FFmpegFrameGrabber.grabKeyFrame()
method to grab key frames (I-frames) directly (issue #312)VideoInputFrameGrabber
now uses 640x480 as default image size to prevent "videoInput.getPixels() Error: Could not get pixels."FFmpegFrameGrabber.setTimestamp()
not working for streams with audio (issue #398)haarcascade_frontalface_alt.xml
file getting downloaded by the Demo
class (issue #402)Frame.sampleRate
field to allow audio samples to be resampled by FFmpegFrameRecorder
(issue #388)IPCameraFrameGrabber
from Greg Perry (issue #384)FFmpegFrameGrabber
and FFmpegFrameRecorder
(issue #377)MotionDetector.java
sample file (issue #372)videoCodecName
and audioCodecName
properties to allow users of FFmpegFrameRecorder
to use codecs such as "libx264rgb" (issue #369)FFmpegFrameGrabber.getFrameNumber()
MarkerDetector.draw()
FFmpegFrameGrabber.getTimestamp()
not returning values for audio frames (issue #328)Frame.keyFrame
field returned by FFmpegFrameGrabber.grabFrame()
to know when a grabbed frame is a key frame or not (issue #312)samples/RecordActivity.java
that would happen when trying to record a frame with an invalid timestamp (issue #313)FFmpegFrameRecorder
throwing an Exception
FFmpegFrameGrabber
not returning the last few frames of video streams (issue #315)FrameRecorder.record(Buffer[] samples)
to a cleaner record(Buffer ... samples)
(issue #303)FFmpegFrameRecorder
not flushing buffers on stop()
(issue #302)FFmpegFrameRecorder.setVideoOption()
and setAudioOption()
generalize the way to set arbitrary codec options, such as "profile", "preset", "tune", etc. used by the x264 codecFFmpegFrameRecorder
for protocols like RTPFFmpegFrameGrabber
and FFmpegFrameRecorder
, as required by newer versions of FFmpeg for at least MP3 and AACFFmpegFrameRecorder
by making it use the closest supported frame rate for the given codec instead of failingvideoQuality
and audioQuality
properties to FFmpegFrameRecorder
, which usually have an effective range of [0, 51] and overrides the videoBitrate
and audioBitrate
propertiesCanvasFrame.waitKey(-1)
does not wait anymore and returns the last KeyEvent
dispatched since the last call to itFaceRecognition.java
sample (issue #276)Sobel()
, Scharr()
, Laplacian()
, and Canny()
from opencv_imgproc
whose equivalent functions in the C API have missing parametersOpenKinectFrameGrabber
with setDepthFormat()
and setVideoFormat()
methods to be able to set both formats independently (issue #273)Blender.blend()
having its @OutputMat
incorrectly annotated as @InputMat
(issue #272)RecordActivity.java
Android sample from Shawn Van Every and Qianliang Zhangallocate()
methods for FunctionPointer
in AVIOContext
and others, which prevented these FFmpeg callbacks from functioningFrameGrabber.Array.grab()
(as used by ProCamCalib in the case of stereo cameras, issue #262) when FrameGrabber.getTimestamp()
returns an invalid negative value (as with opencv_highgui
) or when using different types of (unsynchronized) FrameGrabber
togethercvQueryHistValue_1D()
and other functions that use a raw CvArr
objectCanvasFrame
Algorithm.getMat()
and HOGDescriptor.getDefaultPeopleDetector()
returning null
instead of the expected datacv::Ptr
IplImage
, CvMat
, CvBGCodeBookModel
, etc. its memory content now gets zeroed out, giving OpenCV a better chance of displaying an error message instead of crashingStringVector
and MatVector
new convenient bulk constructors and put()
methods taking arrays of String
, IplImage
, CvMat
, etc.Blobs
module from David Grossman and the corresponding BlobDemo
sampleopencv_core.partition()
function (issue #144)@Adapter
annotations to more concise ones like @StdVector
as allowed by new capabilities of JavaCPPFFmpegFrameGrabber.getLengthInFrames()
and OpenCVFrameGrabber.getLengthInTime()
(issue #231 and issue #236)FFmpegFrameRecorder
to support conversion between audio sample formats (for the experimental AAC encoder among other things) and to let two different threads call record(samples)
and record(image)
simultaneously, plus a couple of other features like setFrameNumber()
, which lets users skip image frames (achieving variable frame rate)javacpp.skip
property to pom.xml
, such that a command like mvn package -Pall -Djavacpp.skip=true
only recompiles the Java source files, but also added platform.root
and compiler.path
properties, which map directly to JavaCPP's for conveniencejavacv-linux-arm.jar
build thanks to Jeremy Nicola (issue #184)pom.xml
make it easier to build JavaCV from source (issue #202), calling mvn package
now succeeds with only OpenCV and a C++ compiler for JavaCPPPointer.limit
property of JavaCPP can now be used to get the size
of an output parameter, and to specify the maximum size
on input as wellFFmpegFrameGrabber
(call grabFrame()
instead of grab()
) and FFmpegFrameRecorder
(call setAudioChannels()
before start()
, and record(Frame)
instead of record(IplImage)
) (issue #160)FFmpegFrameRecorder
settings to H.263, MPEG-4, etc. codecs and fixed H.264 encoding with libx264 (issue #160)FaceApplet
sampleFlannBasedMatcher
constructor, FaceRecognizer.train()
, and Stitcher.stitch()/composePanorama()
(issue #211)CanvasFrame
sometimes blanking out under Windows and maybe Linux (issue #212)libopencv_core.so.2.4
, libopencv_core.2.4.dylib
, opencv_core240.dll
, etc. from Java resources placed inside the com.googlecode.javacv.cpp.<platform.name>
package (i.e.: under the /com/googlecode/javacv/cpp/<platform.name>/
directory of a JAR file in the classpath) (issue #146)FaceApplet
sample to demonstrate How to use JavaCV in an applet
IplImage.asCvMat()
and CvMat.asIplImage()
conversion methodsOpenCVFrameGrabber
, opencv_contrib
, opencv_legacy
, and opencv_stitching
pom.xml
file for Maven support and changed the directory structure of the source code to match Maven's standard directory layoutbuild.xml
or pom.xml
(issue #146)CvANN_MLP.create()
cvCalcCovarMatrixEx()
, cvEigenDecomposite()
, and cvEigenProjection()
taking an IplImage[]
as argument for convenienceVideoInputFrameGrabber.start()
now accepts a connection
argument such as VI_COMPOSITE
to support analog cameras and what notFaceRecognition
sample (issue #188)CvAttrList
position()
methods to KDTree.Node
, DefaultRngAuto
, CvAffinePose
, KeyPoint
, BaseKeypoint
, ReferenceTrees
, DMatch
, *.Params
, CvFuzzy*
, Octree.Node
, CvDefParam
, Cv*Blob*
, Cv*Track*
, CvDrawShape
, CvVectors
, CvParamGrid
, Cv*Params
, CvSVM*
, CvPair16u32s
, CvDTree*
CvTrainTestSplit
, CvMLData
, FeatureEvaluator
, and *DataMatrixCode
IplImage.createFrom()
, copyFrom()
, copyTo()
, getBufferedImage()
by providing a flipChannels
parameter, whose effect was previously mistakenly forced onto four-channel images of byte values only (issue #163)CvMat.get()/put()
(issue #167)IplImage
, we may now specify the pixel format of the data when calling FFmpegFrameRecorder.record()
, but otherwise when IplImage.nChannels == 2
, it assumes PIX_FMT_NV21
, allowing for easy and efficient encoding of data captured from the camera on Android (issue #160), image objects we can also convert to RGB using cvCvtColor()
with CV_YUV420sp2BGR
FFmpegFrameGrabber
(issue #162) and added getLengthInFrames()
and getLengthInTime()
methods to query the duration of streams, when knownIplImage.clone()
and create*Compatible()
with cloning of their BufferedImage
to make it easier to keep color components in the right order (issue #163)FrameGrabber
and FrameRecorder
a bit to accommodate new createDefault(...)
and create(String className, ...)
factory methods, offering to users an easier selection method to work around limitations of some APIs (issue #70)GNImageAligner
, ProCamTransformer
, etc. to support alignment of only the projector display on textureless surface planesSettings
properties to reflect better their meaningsGLCanvasFrame
to show OpenGL renderbuffers on screen, plus a new factory method JavaCVCL.createCLGLImageFrom()
to create compatible ones from IplImage
objects, as well as more user-friendly getGLContext()
, getGL()
and getGL2()
methodsCanvasFrame
, and JavaCV.createCLImage()
and createIplImage()
, also appending From
to their namescreatePinnedBuffer()
and createPinnedIplImage()
factory methods in JavaCVCL
to allocate page-locked memory for faster CPU<->GPU transfers, but it does not seem to work for OpenCL image objects, only linear buffer objects :(GNImageAlignerCL
and ProjectorDevice
(its useOpenGL
property) to support fully OpenCL and OpenGL accelerationParallel
a bit so that we may set the number of threads it uses via its static numThreads
property or the "com.googlecode.javacv.numthreads" system property, which defaults to Parallel.getNumCores() = Runtime.getRuntime().availableProcessors()
JavaCV
, while adding boundingRect()
, functionally similar to cvBoundingRect
, but better adapted to compute a properly aligned and padded ROIallocate()
inside opencv_flann
ObjectFinder
with a Settings.useFLANN
property to let it use FLANN via OpenCVHandMouse
CanvasFrame
, FrameGrabber
, FrameRecorder
, and ProjectiveDevice
objects now throw Exception
objects of a nested class instead of the too generic java.lang.Exception
onecvkernels.multiWarpColorTransform()
, modifying ImageTransformer
classes, from GNImageAligner
into cvkernels
, which now also supports other image types than float
Settings
properties here and there to correct typos and reflect better their meaningsfreenect
to reflect the latest changes of OpenKinect's master branchIplImage.timestamp
to FrameGrabber
, also adding a frameNumber
property, both allowing to seek within streams tootriggerFlushSize
property from CameraDevice
and FrameGrabber
, instead relying on the numBuffers
property to decide the required size of a buffer flushFFmpegFrameGrabber.getFrameRate()
and getTimestamp()
(issue #151)BufferRing
class for convenient circular rings of large buffers that require manual release of resources, such as OpenCL memoryFrameGrabber
, including restart()
, flush()
, and delayedGrab()
(to be used in conjunction with getDelayedTime()
and getDelayedImage()
)cvLoadImageBGRA()
and cvLoadImageRGBA()
methods into opencv_highgui
to load color images compatible with OpenCL more easilyJavaCvErrorCallback
now outputs messages to Logger
instead of System.err
VI_COM_MULTI_THREADED
for videoInput
, allowing it to run on multiple threads if needed/usr/local/lib/
, /opt/local/lib/
, and C:\opencv\
, even when they are not part of the system configuration or PATH (issue #127)set()
and fill()
methods to put()
inside CvPoint*
classes, for better naming consistencyFrameGrabber.ColorMode
to ImageMode
and its BGR
value to COLOR
to reflect the fact that a FrameGrabber
instance can return color images in some arbitrary format, but added a new pixelFormat
property to let users know or specify the exact pixel format desired, such as PIX_FMT_BGR24
, etc. in the case of FFmpegFrameGrabber
FFmpegFrameGrabber.start()
, the format
, imageWidth
, imageHeight
, and frameRate
properties switch to their effective valuesFrameGrabber.sensorPattern
property to obtain the Bayer filter layout of raw data from DC1394FrameGrabber
and FlyCaptureFrameGrabber
KDTree
, Index
, and HOGDescriptor
some functions with FloatPointer
and IntPointer
arguments that were mistakenly removed when OpenCV switched to using cv::InputArray
and cv::OutputArray
parameter types (issue #134)ProjectiveGainBiasTransformer
to ProjectiveColorTransformer
JavaCVCL
, GNImageAlignerCL
, ProjectiveTransformerCL
, ProjectiveColorTransformerCL
, and ProCamTransformerCL
with some other related filesParallel.numCores
to the more conventional Parallel.NUM_CORES
FaceRecognition.java
sample from Stephen L. ReedLoader.load()
(issue #142)Loader.load()
in JavaCPP make JavaCV work on Android 4.0PS3EyeFrameGrabber
from Jiri Masa can now grab images using the SDK from Code LaboratoriesDC1394FrameGrabber
and FlyCaptureFrameGrabber
to behave as expected with all Bayer/Raw/Mono/RGB/YUV cameras modes (within the limits of libdc1394 and PGR FlyCapture) (issue #91)IplImage.copyFrom()
and createFrom()
with BufferedImage
objects of SinglePixelPackedSampleModel
(issue #102)std::vector
objects as output parameters now work on Windows Vista and Windows 7 as wellcv::Mat
or cv::OutputArray
returned with a size 0 now correctly sets CvArr.address = 0
IplImage.createFrom()
and copyFrom()
when called on objects returned by BufferedImage.getSubimage()
CvRNG
OpenCVFrameGrabber
now detects when CV_CAP_PROP_POS_MSEC is broken and gives up calling cvGetCaptureProperty()
OpenKinectFrameGrabber.grabDepth()
and grabVideo()
methods to capture "depth" and "video" simultaneously, regardless of the modeOpenKinectFrameGrabber
, which can now also capture depth images when setFormat("depth")
is called before start()
CvMatArray
and IplImageArray
as well as histogram related functionsFFmpegFrameGrabber
, and FFmpegFrameRecorder
now works on Android alsoopencv_flann.Index.knnSearch()
, that require a MatAdapter
or an ArrayAdapter
for outputfreenect
wrapper and corresponding OpenKinectFrameGrabber
to capture from Microsoft's Kinect stereo camera using OpenKinectCvMat
object pooling in favor of more efficient ThreadLocal
objects created by CvMat.createThreadLocal()
Marker.getCenter()
back to the centroid, because it has better noise averaging properties and gives in practice more accurate results than the actual centerOpenCVFrameGrabber.start()
to wait for cvRetrieveFrame()
to return something else than null
under Mac OS XvideoInputLib
wrapper and corresponding VideoInputFrameGrabber
to capture using DirectShow, useful under Windows 7 where OpenCV and FFmpeg can fail to capture using Video for Windows (issue #58)GeometricCalibrator
now reports the maximum errors in addition to the average (RMS) errorsformat
property to CameraDevice
, FrameGrabber
, and FrameRecorder
, mostly useful for FFmpegFrameGrabber
, where interesting values include "dv1394", "mjpeg", "video4linux2", "vfwcap", and "x11grab"OpenCVFrameRecorder
now uses CV_FOURCC_PROMPT
under Windows as default since CV_FOURCC_DEFAULT
crashes (issue #49)UnsatisfiedLinkError
(issue #54), but some corner cases may require a call to Loader.load()
on the class one wishes to useJavaCV.hysteresisThreshold()
featureHandMouse
functionality, which depends on the image alignment frameworkProjectiveDevice.distort()
, which mistakenly undistorted images insteadHoughLines
sample thanks to Jeremy NicolaFFmpegFrameGrabber
having it call avpicture_deinterlace()
(issue #38)FlyCaptureFrameGrabber
, but this is going to require more careful debuggingCanvasFrame
in the hope to make it behave better outside the EDTFrameGrabber
objects, when start()
may not have been calledCvStereoBMState
and related functionscvkernels
com.googlecode.javacv
, which makes more sense now that JavaCV has been well anchored at Google Code for more than a year, piggybacking on the unique and easy-to-remember domain nameavutil
, avcodec
, avformat
, avdevice
, avfilter
, postprocess
, and swscale
, eliminating the need of the separate FFmpeg-Java packageCanvasFrame
now redraws its Canvas
after the user resizes the Frame
Error
thrown when calling CanvasFrame.showImage()
from the EDTDC1394FrameGrabber
so that a "Failed to initialize libdc1394" does not crash the JVMFFmpegFrameGrabber
does not crash anymore when forgetting to call start()
before a grab()
or trigger()
FrameGrabber
now selects the default grabber a bit betterGNImageAligner
, ProjectiveTransformer
, ProjectiveGainBiasTransformer
, and ProCamTransformer
...JavaCV
more methods related to transformation of planes: perspectiveTransform()
, getPlaneParameters()
, getPerspectiveTransform()
, and HtoRt()
, as well as ProjectiveDevice.getFrontoParallelH()
autoSynch
flag to all Structure
classes of cxcore
, cv
, and cvaux
, which you may set to false
prior to the return of things like big and heavy CvSeq
to make them load faster and to avoid stack overflows, but accessing fields will then require manual calls to readField()
and writeField()
(issue #10 and #14)ByValue
subclasses to CvSeq
, CvSet
, CvContourTree
, and CvChain
... Any others missing?Exception
thrown from cvCreateHist()
under JNA 3.2.7 (issue #26)CvMat.put()
, which now supports setting submatricesIplImage
the support of BufferedImage
, especially those using a DirectColorModel
(issue #23)cvkernels
when color transformation X
is null
CanvasFrame
for some video driversFFmpegFrameGrabber
now supports other input formats (devices), such as x11grab
that can be used for screencastingJavaCV.median()
function, and JavaCV.fractalTriangleWave()
now respects image ROIcvaux
deltaScale
and tryToFixPlane
to GNImageAligner.Settings
(the first used in ImageTransformer.Parameters
as increment, randomly selected forward or backward, for finite difference), which sometimes help to jump over local minimaCvMemStorage.clearMem()
method, use cvClearMemStorage()
Test2
class that did not work under Windowscvkernels
transformer
at the bordersCanvasFrame
constructors and added a gamma
argument used by showImage(IplImage)
CanvasFrame
now lets users resize the frame, while displayed images are stretched to fit the new sizeCanvasFrame.acquireGraphics()
to createGraphics()
for consistencyFlyCaptureFrameGrabber
cannot set fastest speed, it now safely fails by setting any supported speedParallel.loop()
method that can use more threads than the number of CPU cores detectednumThreads
property to GNImageAligner
and fixed a few minor inconsistencies as wellJava.HnToRt()
, and added a few norm()
and randn()
methodsfloat[]
and double[]
arguments in cvaux
and cv
, added complementary FloatBuffer
and DoubleBuffer
declarationscvaux
CvRNG
CvScalar.getVal()
and CvIntScalar.getVal()
, which simply return the val
field, convenient for Scala where val
is a reserved wordIplImage
from a Pointer
IplImage
gets converted to a BufferedImage.TYPE_CUSTOM
CvArr.PointerByReference
a bit more consistent and generalIplImage
, FrameGrabber
, and CanvasFrame
to get better default behavior of gamma correctioncv.CvHistogram
and related histogram functionsCameraDevice.Settings.triggerFlushSize
now defaults to 5 (only affects OpenCVFrameGrabber
and FFmpegFrameGrabber
)LMImageAligner
by GNImageAligner
, a more appropriate name for Gauss-Newton with lineSearch
ProjectiveDevice.Settings
clone()
methods to avoid the need to castfullScreen
argument from CanvasFrame
constructors, which will now switch to full-screen mode only when a screenNumber
is explicitly passedFrameGrabber.ColorMode.GRAYSCALE
to GRAY
FFmpegFrameGrabber
and FFmpegFrameRecorder
FFmpegFrameGrabber
can now resize imagescvkernels
, JavaCV.fractalTriangleWave()
, ImageAligner
, LMImageAligner
, ImageTransformer
, ProjectiveTransformer
, ProjectiveGainBiasTransformer
, ProCamTransformer
, and ReflectanceInitializer
CameraDevice.Settings
has a new deviceFile
property (used by a FrameGrabber
), which brings up a file dialog for some PropertyEditor
sCameraSettings
, ProjectorSettings
, and FrameGrabber.PropertyEditor
from the procamcalib
packageCameraDevice.Settings
and FrameGrabber
a triggerFlushSize
property to indicate the number of buffers to flush on trigger()
to compensate for cheap cameras that keep old images in memory indefinitelyCameraDevice.Settings.deviceNumber
to Integer
so we may set it to null
CanvasFrame.showImage()
methods a bittriggerMode
DC1394FrameGrabber
now tries to use a real software trigger and only falls back to one-shot mode on errorIplImage.PointerByReference()
and CvImgObsInfo.PointerByReference()
CvPoint.fillArray()
methods to reuse preallocated arrays and changed createArray()
a bit as wellIplImage.copy*()
methods, including new support for ROIs and subimages, which affects create*()
and getBufferedImage()
methods as wellMarker
to support different size and spacing in X and YSettings
to ObjectFinder
ProjectiveDevice
and ProCamColorCalibrator
with OpenCV 1.1pre1ProjectiveDevice.Settings
into ProjectiveDevice.CalibrationSettings
(for applications like ProCamCalib) and ProjectiveDevice.CalibratedSettings
(for applications like ProCamTracker)gamma
to responseGamma
in ProjectiveDevice
, and moved previous nominalDistance
parameter to Settings
ProjectiveDevice.rescale()
to rescale calibration parameters when switching a device to a new image sizeProjectiveDevice.undistort()
and distort()
can now useFixedPointMaps
of OpenCVProjectiveDevice
and its subclasses now throw new Exception()
if the parameterFile
cannot be readdevicePath
setting to CameraDevice
that works with FFmpegFrameGrabber
, OpenCVFrameGrabber
, and other FrameGrabber
with a String constructorcvFindHomography()
, cvFindExtrinsicCameraParams2()
, cvReprojectImageTo3D()
, cvSaveImage()
, and cvRetrieveFrame()
to version specific classes since their number of arguments differ with the version of OpenCVCvMat.put(CvMat mat)
to work better even when the matrices are not actually compatibleIplImage
factory methods createCompatible(IplImage image)
, createIfNotCompatible(IplImage image, IplImage template)
, and createFrom(BufferedImage image)
distortionCoeffs
corruption that might occur in ProjectiveDevice
cvaux
module of OpenCVFrameRecorder
class and a OpenCVFrameRecorder
classjava -jar javacv.jar
now displays version informationCanvasFrame
from getting stuck in a maximized windowsetAutoWrite(false)
from cxcore
now that the bug appears fixed in JNAFFmpegFrameGrabber
and FFmpegFrameRecorder
to easily record live footage and grab back offline into JavaCVCvPoint*
, CvSize*
, CvRect
, CvTermCriteria
, CvSlice
, and CvAttrList
ProjectiveDevice
FlyCaptureFrameGrabber
CvHaarFeature
StructureCvIntScalar
factory methods to match with CvScalar
IplImage
highgui.CV_FOURCC()
method that takes chars as parameterMarkedPlane.drawMarkers()
to Marker.draw()
for better code reuseMarkedPlane.getTotalWarp()
with a "useCenters" parameterMarkerDetector.binarizationKWhiteMarkers
to 1.0 and ProjectorDevice.brightnessBackground
to 0.0MarkerDetector
Marker.getCenter()
now computes the actual physical center instead of the centroidOpenCVFrameGrabber.getDeviceDescriptions()
now throws UnsupportedOperationException
OpenCVFrameGrabber
to grab frames from video filesProjectiveDevice.getRectifyingHomography()
methodJavaCvErrorCallback
to easily catch errors of OpenCV in JavaCvMatPool
to the CvMat.take()
and .pool()
methodsProCamColorCalibrator
)DC1394FrameGrabber
to handle more conversion use cases automaticallyCvIntScalar
to mirror CvScalar
cv.v20
can access everything from the cv
module of OpenCV 2.0CvPoint*
ObjectFinder
to plug the memory leakProjectiveDevice
Structure
or PointerByReference
cv.java
a few missing functions related to calibrationCvPoint*
, CvScalar
, CvRect
, CvBox2D
, CvMat
, IplImage
, CvMemStorage
, CvSeq
, and CvSeqBlock
CvMatPool
to MarkedPlane
and Marker
distort()
methods to ProjectiveDevice
IplImage
now flips the buffer on copy if necessaryCvSURFPoint
and CvConvexityDefect
CvMat
get*Buffer()
functions to IplImage
IplImage
and ProjectiveDevice
ProjectiveDevices
CanvasFrame.waitKey()
now only checks KeyEvent.KEY_PRESSED
CvMatPool
to avoid recreating matricesCvScalar
functions to cxcore
import static
for relief from namespace hellDC1394FrameGrabber
Initial release
This project was conceived at the Okutomi & Tanaka Laboratory, Tokyo Institute of Technology, where I was supported for my doctoral research program by a generous scholarship from the Ministry of Education, Culture, Sports, Science and Technology (MEXT) of the Japanese Government. I extend my gratitude further to all who have reported bugs, donated code, or made suggestions for improvements (details above)!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。