什么是基于Web的项目的良好平台,使用OpenCV库进行图像处理?我找到了Wt(http://www.webtoolkit.eu/wt).
我可以使用OpenCV和Wt吗?还有更好的Wt替代品吗?
要求:
用于上传文档,选择图像区域,使用OpenCV进行手写字/线检测的登录页面GUI
我有紧急实时跟踪器样本apk文件.所以我通过eclipse运行该应用程序.
我收到了一个错误.
我想实现一个背景平均方法.我在一秒钟内拍摄了50帧图像,其中一些帧包含闪电,我想将其提取为前景.框架采用固定式摄像机拍摄,框架采用灰度级.我想做的是:
我阅读了一些关于如何通过使用cvAcc()实现这一目标的文档,但我很难理解如何做到这一点.我将非常感谢一段代码,它引导我和文档链接,可以帮助我理解如何实现这一点.
提前感谢你.
我有一个背景场景的图像和前面有物体的同一场景的图像.现在我想用背景减法创建前景中对象的蒙版.两个图像都是RGB.
我已经创建了以下代码:
cv::Mat diff;
diff.create(orgImage.dims, orgImage.size, CV_8UC3);
diff = abs(orgImage-refImage);
cv::Mat mask(diff.rows, diff.cols, CV_8U, cv::Scalar(0,0,0));
//mask = (diff > 10);
for (int j=0; j<diff.rows; j++) {
// get the address of row j
//uchar* dataIn= diff.ptr<uchar>(j);
//uchar* dataOut= mask.ptr<uchar>(j);
for (int i=0; i<diff.cols; i++) {
if(diff.at<cv::Vec3b>(j,i)[0] > 30 || diff.at<cv::Vec3b>(j,i)[1] > 30 || diff.at<cv::Vec3b>(j,i)[2] > 30)
mask.at<uchar>(j,i) = 255;
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道我这样做是否正确?
我是codeigniter的新手.我使用登录表单作为管理员登录.当管理员使用正确的用户名和密码登录时,他/她被引导到带有会话变量的主页.然后,如果他点击退出按钮,会话应该被销毁并将用户重定向到登录页面即登录表单页面.
第一个控制器是管理员:
<?php
class Admin extends CI_Controller
{
function index()
{
$data['main_content'] = 'admin/log_in';
$this -> load -> view('includes/admin/admin_template', $data);
}
function log_in()
{
$this->load->model('admin_model');
$query = $this -> admin_model -> validate();
if ($query)// if the user's credentials validated...
{
$data = array('user_name' => $this -> input -> post('user_name'), 'is_logged_in' => true);
$this -> session -> set_userdata($data);
redirect('admin/home/admin_home');
} else// incorrect username or password
{
$this -> index();
}
}
function log_out()
{
$this->session->sess_destroy();
redirect('/admin/admin','refresh');
}
}
Run Code Online (Sandbox Code Playgroud)
第二个控制器是家庭控制器:
<?php
class …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个机器人项目,使用Android手机作为主处理器和相机来检测运动.我从OpenCV获得了Android二进制包并正确安装.我可以使用OpenCV原生相机捕捉图像并将其显示在屏幕上.但是我在使用背景减法类时遇到了问题.我可以在构造函数中创建一个新的BackgroundSubtractorMOG对象,但是当我尝试运行下面的代码时,它强制退出我从本机代码中得到错误"BackgroundSubtractorMOG中仅支持1-和3通道8位图像".我尝试将Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA更改为Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGB,然后它不强制退出,但我得到的只是一个黑屏.我很确定使用FRAME_RGB,bmp仍然为null,因为屏幕保持黑色,并且我在位图之后绘制的fps计数器(从下面发布的代码中移除以便清晰并作为故障排除步骤)不会显示.
我看了一下这个函数的OpenCV C++代码(这里是第388行),如果图像类型不是CV_8UC1或CV_8UC3,则会出现图像类型错误,所以我尝试使用java CvType.CV_8UC3而不是Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA capture.retrieve(),但它强制关闭,我得到了"不支持输出帧格式"错误.
我猜我刚刚遇到类型转换问题,但我无法弄清楚OpenCV的Android特定图像类型与其记录的常规图像类型相适应的生活.任何帮助,将不胜感激.
变量:
private SurfaceHolder mHolder;
private VideoCapture mCamera;
private Mat mRgba;
private Mat mFGMask;
private BackgroundSubtractorMOG mBGSub;
Run Code Online (Sandbox Code Playgroud)
我的SurfaceView的run()函数:
public void run() {
Bitmap bmp = null;
synchronized (this) {
if (mCamera == null)
break;
if (!mCamera.grab()) {
Log.e(TAG, "mCamera.grab() failed");
break;
}
processFrame(mCamera);
bmp = Bitmap.createBitmap(mFGMask.cols(), mFGMask.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mFGMask, bmp);
}
if (bmp != null) {
Canvas canvas = mHolder.lockCanvas();
if (canvas != null) {
canvas.drawBitmap(bmp, (canvas.getWidth() - bmp.getWidth()) …
Run Code Online (Sandbox Code Playgroud) 我需要从Kinnect相机捕获彩色RGB图像,但我想在OpenCV中显示它,因为这只是更大程序的一部分.我知道如果你设置了标志,OpenCV与OpenNI兼容,但是虽然我努力了但是CMake找不到OpenNI2的路径所以我无法使用OpenNI构建OpenCV.无论如何,我认为知道如何手动将OpenNI帧转换为openCV帧是很好的,所以我决定采用这种方式.
为了在OpenNI中捕获颜色框架,我尝试了以下方法:
openni::Device device;
openni::VideoStream color;
openni::VideoFrameRef colorFrame;
rc = openni::OpenNI::initialize();
rc = device.open(openni::ANY_DEVICE);
rc = color.create(device, openni::SENSOR_COLOR);
rc = color.start();
color.readFrame(&colorFrame);
const openni::RGB888Pixel* imageBuffer = (const openni::RGB888Pixel*)colorFrame.getData();
Run Code Online (Sandbox Code Playgroud)
但现在我不明白如何转换为cv :: Mat.
有没有人管这样做?
我正在分析JNI Android应用程序.到目前为止,我设法使用Android-NDK-profiler对其进行了分析.它非常简单,所以我想进一步了解硬件信息,如缓存未命中,总线速度等.
我已经读过NVidia Tegra分析器非常强大,但是关于支持它的设备的信息并不多.我知道它需要Tegra 4,例如这个设备支持它:http://shield.nvidia.com/.
问题是它没有集成卡马拉,因此它对我无效.
有没有人尝试过与Nvidia Tegra探测器兼容的移动设备或平板电脑等设备?
我在父菜单下的管理员中添加子菜单,但是当我们选择子菜单时,只有一个子菜单会在管理员中突出显示而其他子菜单不会突出显示.
我在config.xml文件中添加了以下代码.
<menu>
<customersettings module="customersettings">
<title>Advance Settings</title>
<sort_order>100</sort_order>
<children>
<customersettings module="customersettings">
<title>Customer Settings</title>
<sort_order>0</sort_order>
<action>customersettings/adminhtml_customersettings</action>
</customersettings>
</children>
</customersettings>
</menu>
Run Code Online (Sandbox Code Playgroud)
请给我一些建议,谢谢.
我们有一个加载Python应用程序config.yml
与aumbry.出于生产目的,我们需要使用fernet加密此配置,aumbry可以无缝加载.
我们希望能够以透明方式加载未加密和加密,例如,如果找到则加载未加密,如果没有(生产)加载加密.到目前为止,我们已经实现了
import cryptography.Fernet as fn
from os.path import split, splitext
def _encrypt_file(path, key):
with open(path, 'rb') as infile:
file_data = infile.read()
nc_data= fn(key).encrypt(file_data)
infile.close()
base_path, filename = split(path)
name, _ = splitext(filename)
nc_name = "{}.{}".format(name, 'nc')
with open(join(base_path, nc_name), 'wb') as outfile:
outfile.write(nc_data)
outfile.close()
Run Code Online (Sandbox Code Playgroud)
from aumbry.errors import LoadError
def _get_configuration():
return aumbry.load(
aumbry.FILE,
AppConfig,
options={
'CONFIG_FILE_PATH': "config.yml"
}
)
def _get_encrypted_configuration():
return aumbry.load(
aumbry.FERNET,
AppConfig,
options={
'CONFIG_FILE_PATH': "config.nc",
'CONFIG_FILE_FERNET_KEY': 'bZhF6nN4A6fhVBPtru2dG1_6d7i0d_B2FxmsybjtE-g='
} …
Run Code Online (Sandbox Code Playgroud)