opencv 截屏代码示例
时间: 2023-03-10 22:25:24 浏览: 116
OpenCV 截屏代码示例如下:import cv2 # capture video capture = cv2.VideoCapture(0) # set video width and height capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640) capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) # get a frame success, frame = capture.read() # save the image cv2.imwrite('screenshot.jpg', frame)
相关问题
安卓使用opencv 截屏 代码示例
### 回答1:
可以使用下面的代码示例来实现Android使用OpenCV截屏:// 获取屏幕
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 创建OpenCV对象
Mat mat = new Mat(height, width, CvType.CV_8UC4);// 将屏幕图像转换为Mat
Utils.bitmapToMat(bmp, mat);// 将Mat保存为图片文件
Imgcodecs.imwrite("screenshot.png", mat);
### 回答2:
使用安卓平台进行屏幕截图的代码示例如下:
首先,需要准备好OpenCV库文件,并在项目中引入OpenCV库。在项目的build.gradle文件中添加以下代码:
```groovy
implementation project(':opencv')
```
然后,创建一个Activity,并在布局文件中添加一个按钮用于触发截屏操作。在Activity的Java文件中添加以下代码:
```java
import org.opencv.android.Utils;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button screenshotButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
screenshotButton = findViewById(R.id.screenshot_button);
screenshotButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 截取屏幕并转化为OpenCV的Mat对象
View rootView = getWindow().getDecorView().getRootView();
rootView.setDrawingCacheEnabled(true);
Bitmap screenshotBitmap = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
Mat screenshotMat = new Mat(screenshotBitmap.getHeight(), screenshotBitmap.getWidth(), CvType.CV_8UC3);
Utils.bitmapToMat(screenshotBitmap, screenshotMat);
// 将Mat对象转化为字节数组
MatOfByte screenshotBytes = new MatOfByte();
Imgcodecs.imencode(".png", screenshotMat, screenshotBytes);
// 可以在这里对screenshotBytes进行进一步处理,如保存到文件或进行图像处理等
// 释放Mat对象
screenshotMat.release();
}
});
}
}
```
以上代码使用OpenCV的Utils类将Android的Bitmap对象转化为OpenCV的Mat对象,并使用Imgcodecs类将Mat对象转化为字节数组。在点击截屏按钮后,屏幕会被截取,并将截取的图像以字节数组的形式保存在`screenshotBytes`中。你可以根据自己的需求,对`screenshotBytes`进行进一步的处理,例如保存为文件或进行图像处理等。
python opencv视频截图代码
以下是 Python OpenCV 视频截图的代码示例:
```python
import cv2
# 打开视频文件
cap = cv2.VideoCapture('test.mp4')
# 循环读取视频帧
while(cap.isOpened()):
# 读取视频帧
ret, frame = cap.read()
# 如果读取失败,退出循环
if not ret:
break
# 显示视频帧
cv2.imshow('frame',frame)
# 按下 q 键退出循环
if cv2.waitKey(25) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
以上是 Python OpenCV 视频截图的代码示例。