我在使用 opencv2.3.1 VideoWriter 编写玩具示例视频时遇到问题,这是我的做法:
writer = cv2.VideoWriter('test1.avi',cv.CV_FOURCC('P','I','M','1'),25,(640,480))
for i in range(1000):
x = np.random.randint(10,size=(480,640)).astype('uint8')
writer.write(x)
#del writer (with or without tested)
Run Code Online (Sandbox Code Playgroud)
如果扩展名是 mpg,我尝试了所有可能的组合,结果是 0 字节的文件,如果是 avi,则是 5.5kb。我应该说有些人指出我应该从源代码构建 ffmpeg 库,而不是 apt-get 它。好吧,我在本网站http://vinayhacks.blogspot.com/2011/11/installing-opencv-231-with-ffmpeg-on-64.html的帮助下在一台新机器上做到了这一点 。编译opencv时也出现错误(该错误与ffmpeg有关)。现在我真的没有想法了,如何使用 OPENCV 生成视频?
提前致谢
为了提取颜色,我们有这个功能
# define range of blue color in HSV
lower_blue = np.array([110,50,50])
upper_blue = np.array([130,255,255])
# Threshold the HSV image to get only blue colors
mask = cv2.inRange(hsv, lower_blue, upper_blue)
Run Code Online (Sandbox Code Playgroud)
我们如何实际可视化我在hsv空间定义的范围(lower_blue,upper_blue)?另外我如何实际绘制hsv颜色,但它不起作用......?我有这个代码:
upper = np.array([60, 255, 255])
upper = cv2.cvtColor(upper, cv2.COLOR_HSV2BGR)
upper = totuple(upper/-255)
print(upper)
plt.imshow([[upper]])
Run Code Online (Sandbox Code Playgroud) 我是 openCV 的新手。我已经能够用蒙版计算图像的绿色和黄色像素。我想知道openCV中Brown的HSV范围是多少。
private void testBrownPixelCount(Mat originalMat) {
if(isMatEmpty(originalMat)){
Log.i(TAG, "Empty Original Mat at testBrownPixCoutn()");
}else{
//Perform:
Mat maskMat = Imgcodecs.imread(testFilePath);
Mat bgr = new Mat();
Imgproc.cvtColor(maskMat, bgr, Imgproc.COLOR_BGR2RGB);
Mat maskMatHsv = new Mat();
Imgproc.cvtColor(bgr, maskMatHsv , Imgproc.COLOR_RGB2HSV);
//iF NOt; use RGB2HSV:
Mat brownMat = new Mat();
Scalar min_brown = new Scalar(20,100,100);
Scalar max_brown = new Scalar(30,255,255);
Core.inRange(maskMatHsv, min_brown, max_brown, brownMat);
Log.i(TAG, "Brown Mat Non-zeros:" + Core.countNonZero(brownMat));
Bitmap bitmapMat = Bitmap.createBitmap(brownMat.cols(), brownMat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(brownMat, bitmapMat);
imgView_testView.setImageBitmap(bitmapMat);
}
Run Code Online (Sandbox Code Playgroud)
结果是黑色的imageView,它甚至无法检测到黄色的。