是否有一个用.NET编写的库允许我逐帧读取视频?
样本用法如下:
Video vid = Video.Open("test.avi");
foreach (Bitmap bmp in vid.Frames)
PictureBox1.Picture = bmp;
Run Code Online (Sandbox Code Playgroud) 我已经完成了艰苦的工作,将我的MacBook上的iSight摄像头转换为红外摄像头,转换它,设置阈值等等.现在有一个看起来像这样的图像:
我现在的问题是; 我需要通过分组白色像素来了解我的图像上有多少斑点.我不想使用cvBlob/ cvBlobsLib,我宁愿只使用OpenCV中已有的东西.
我可以通过检查(阈值)触摸白色像素来循环像素并对它们进行分组,但我猜测从OpenCV可能有一种非常简单的方法吗?
我猜我不能使用,cvFindContours因为这将检索一个大数组中的所有白色像素,而不是将它们分成"组".谁能推荐?(注意这些不是圆圈,只是从小红外LED发出的光)
提前谢谢了!
tommed
这有效:
gst-launch-0.10 \
videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
audiotestsrc ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
Run Code Online (Sandbox Code Playgroud)
我可以让它运行一段时间,杀死它,然后totem gst.avi显示一个带有音调的漂亮的测试卡.
但是,尝试做一些更有用的事情
gst-launch-0.10 \
filesrc location=MVI_2034.AVI ! decodebin name=dec \
dec. ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
dec. ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
Run Code Online (Sandbox Code Playgroud)
它只是显示
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Run Code Online (Sandbox Code Playgroud)
然后无限期地停止.
使用decodebin滚动版本的诀窍是什么?
我正在尝试编写代码帮助我完成生物学工作.代码的概念是分析组织中收缩细胞的视频文件
示例2:youtube.com/watch?v=uG_WOdGw6Rk
并绘制出以下内容:
所以我编写了一个Matlab代码,它将遍历视频并比较每个帧与其后的帧,并查看帧中是否有任何变化并在曲线上绘制这些变化.
我的代码结果示例

我写的当前代码的核心:
for i=2:totalframes
compared=read(vidObj,i);
ref=rgb2gray(compared);%% convert to gray
level=graythresh(ref);%% calculate threshold
compared=im2bw(compared,level);%% convert to binary
differ=sum(sum(imabsdiff(vid,compared))); %% get sum of difference between 2 frames
if (differ ~=0) && (any(amp==differ)==0) %%0 is = no change happened so i dont wana record that !
amp(end+1)=differ; % save difference to array amp wi
time(end+1)=i/framerate; %save to time array with sec's, used another array so i can filter both later.
vid=compared; %% save current frame …Run Code Online (Sandbox Code Playgroud) 我有一个电影文件,我有兴趣录制一个点的运动; 圆形特征的中心是具体的.我试图在Matlab中使用边缘检测和角点检测技术来执行此操作.
要执行此操作,如何在视频中指定感兴趣的区域?subplot是个好主意吗?
我试图使用二进制掩码执行此操作,如下所示,
hVideoSrc = vision.VideoFileReader('video.avi','ImageColorSpace', 'Intensity');
hEdge = vision.EdgeDetector('Method', 'Prewitt','ThresholdSource', 'Property','Threshold', 15/256, 'EdgeThinning', true);
hAB = vision.AlphaBlender('Operation', 'Highlight selected pixels');
WindowSize = [190 150];
hVideoOrig = vision.VideoPlayer('Name', 'Original');
hVideoOrig.Position = [10 hVideoOrig.Position(2) WindowSize];
hVideoEdges = vision.VideoPlayer('Name', 'Edges');
hVideoEdges.Position = [210 hVideoOrig.Position(2) WindowSize];
hVideoOverlay = vision.VideoPlayer('Name', 'Overlay');
hVideoOverlay.Position = [410 hVideoOrig.Position(2) WindowSize];
c = [123 123 170 170];
r = [160 210 210 160];
m = 480; % height of pout image
n = 720; % width of pout …Run Code Online (Sandbox Code Playgroud) matlab image-processing video-processing computer-vision matlab-cvst
我有一个小视频剪辑和一个音频文件.问题是如何编写代码将它们合并到一个文件中.我从来没有为Android的多媒体应用程序编写代码,也不知道是否可以使用android媒体框架进行合并.有没有第三方图书馆这样做?
我们可以在Java中使用合并代码并在Android中调用它吗?
请指导我完成这个.谢谢
我正在一个视频处理项目中,该项目涉及使用来自摄像机的给定帧与关键图像的简单XOR操作进行某种加密,并最终存储视频文件。对于解密阶段,使用相同图像的XOR操作将获得原始帧。但是问题是,当我解密帧时,它看起来非常嘈杂,并发现这是由于我在存储时使用了有损图像压缩孔而造成的。还有其他针对opencv的无损图像压缩格式吗?
要重复视频的第一帧,例如填充它以补偿更长的音频,可以使用以下管道.
ffmpeg -i video.mp4 -vframes 1 -f image2 image.jpg
ffmpeg -loop 1 -i image.jpg -t 5 pad.mkv
ffmpeg -i pad.mkv -i video.mp4 -i audio.mp3 -filter_complex '[0:v] [1:v] concat' -c:a copy -map 2:a out.mkv
Run Code Online (Sandbox Code Playgroud)
(Concat过滤器首选连接输入,因为视频和填充剪辑的编解码器可能不同.)
相比之下,在开始时具有静音的填充音频仅适合一行.
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -filter_complex 'aevalsrc=0:duration=5 [pad],[pad] [1:a] concat=v=0:a=1' -c:v copy out.mkv
Run Code Online (Sandbox Code Playgroud)
视频填充是否也可以在一个ffmpeg执行中压缩?
任务:将传单图像合并到传单视频中.
案例:
情况1
案例2
FAIL =错误域= AVFoundationErrorDomain代码= -11800"操作无法完成"UserInfo = 0x17266d40 {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x172b3920"操作无法完成.(OSStatus错误-16980.) ",NSLocalizedFailureReason =发生未知错误(-16980)}
代码:
- (void)modifyVideo:(NSURL *)src destination:(NSURL *)dest crop:(CGRect)crop
scale:(CGFloat)scale overlay:(UIImage *)image
completion:(void (^)(NSInteger, NSError *))callback {
// Get a pointer to the asset
AVURLAsset* firstAsset = [AVURLAsset URLAssetWithURL:src options:nil];
// Make an instance of avmutablecomposition so that we can edit this asset:
AVMutableComposition* mixComposition = [AVMutableComposition composition];
// Add tracks to this …Run Code Online (Sandbox Code Playgroud) video-processing ×10
video ×5
matlab ×2
opencv ×2
.net ×1
android ×1
audio ×1
c ×1
command-line ×1
ffmpeg ×1
gstreamer ×1
imaging ×1
ios ×1
iphone ×1
matlab-cvst ×1
objective-c ×1
python ×1
streaming ×1