opencv中box.width*=-1;

QQ3827374272022-10-04 11:39:541条回答

opencv中box.width*=-1;
box.width*=-1;是什么意思?

已提交,审核后显示!提交回复

共1条回复
水印白木 共回答了14个问题 | 采纳率92.9%
ox.width*=-1
等于
box.width=-1 * box.width=-box.width
1年前

相关推荐

opencv 如何提取旋转矩形的ROI
opencv 如何提取旋转矩形的ROI



如图,想这样的一幅图片,我得到的是RotatedRect结构的旋转矩形.现在有两个问题:
我如何把这个旋转矩形(包含轮廓信息啦)保存到另一个Mat中,opencv中有提取ROI是对rect来说的,旋转的矩形就不知道怎么办了
如果得不到这个旋转矩形的话,那么有没有办法计算轮廓到边界框的距离呢——就是轮廓上的点分别到四个边界框的距离.
像这种正规的直上直下的矩形框到边界的距离可以通过访问像素得到,但是像旋转后的又如何得到距离呢?因为毕竟访问像素不大可行了呀
edwardyh1年前1
wyk108 共回答了23个问题 | 采纳率87%
很简单,
1 使用RotatedRect minAreaRect(InputArray points)获取这个旋转矩形
2 将其四角存到某vector里面,变成一个轮廓,怎么获取四角?参见http://docs.opencv.org/modules/core/doc/basic_structures.html?highlight=rotatedrect#RotatedRect
你一定能搞出来.
3 然后遍历内部那个轮廓的各个点,然后使用pointPolygonTest这个opencv函数确定此点与四边形的距离.
4 要注意的是因为点在轮廓内部,所获距离为负数.
opencv怎么计算物体移动速度
opencv怎么计算物体移动速度
求具体解决方法,最好能有源代码参考一下,
凑各热闹1年前1
ideal_hero 共回答了21个问题 | 采纳率81%
你起码得识别出来这个物体啊!
然后通过跟踪算法 kalman 粒子滤波 跟踪这个物体的中心点 比如重心
根据移动的速度和时间来计算
你先做出来物体识别跟踪 速度自然就有了
百度搜 物体识别 opencv
kalman opencv
OpenCV中一幅图像的ROI的坐标和长宽是如何确定的?
OpenCV中一幅图像的ROI的坐标和长宽是如何确定的?
坐标是实验得到的吗?长宽是估计的吗?
万能五笔11年前1
香豆腐干 共回答了16个问题 | 采纳率87.5%
我记得我以前回答过你的问题,你的ID我有印象.
ROI主要有四个参数,
起始点x 起始点y
宽width 高 height
如果你要用ROI把手的位置抠出来的话,前提是你要知道手的位置是在哪里.
第一步用凸包等技术将手分割处理,然后用ROI处理.
这个无论是坐标还有长宽都是实验结果,绝逼不能估计.
opencv里 count = cvNorm( silh, 0, CV_L1, 0 ); 是什么意思?
Guy-In-Toronto1年前1
miky998 共回答了18个问题 | 采纳率88.9%
就是返回 silh 的L1 norm.norm 我也不知道怎么翻译,大概叫做范数.
cvNorm 提供了三种计算 norm 的方法.
L2 norm 就是欧几里得距离.
L1 norm 就是向量中的绝对值和.
INF norm 就是向量中的max.
opencv中什么函数可以直接单独访问HSV的H通道呢 bgr分别对应通道0 1 2 那么HSV呢
517711年前1
tinawa260 共回答了22个问题 | 采纳率90.9%
先调用cvCvtColor将图像转到HSV颜色空间,如:cvCvtColor(rgb,hsv,CV_BGR2HSV);
然后调用cvSplit函数,就可以将H分量分离出来,再来单独访问H分量,H对于的通道是0.
OpenCV中如何计算某像素点的具体梯度值
OpenCV中如何计算某像素点的具体梯度值
利用cvSobel对图像进行求导,如cv(src,dst,1,0,3);(在x方向上的导数).可是在具体的某个像素点,它的梯度值大小怎么算呢?
木李1年前1
今年决定隆胸 共回答了21个问题 | 采纳率85.7%
其实你用了cvsobel后,每个像素的梯度已经计算出来,并存放到dst里面了,你可以访问dst求取具体某点的梯度,如果你问的是cvsobel怎么计算每点梯度的,你看一下函数说明void cvSobel( const CvArr* src,CvArr* dst,int xor...
opencv中的侵入判断a[y][x] = *(pFrImg->imageData + pFrImg->widthSte
opencv中的侵入判断
a[y][x] = *(pFrImg->imageData + pFrImg->widthStep*y +
银恋1年前1
梦网情缘 共回答了15个问题 | 采纳率73.3%
从公式看应该是单通道图像.
获取图像坐标对应像素值,赋给一个数组.
基地址+行偏移量*列数+列偏移量.
用opencv 进行hough 变换,怎样得到并输出直线的角度?
用opencv 进行hough 变换,怎样得到并输出直线的角度?
程序如下:
#include "cv.h"
#include "highgui.h"
#include
int main(int argc,char** argv)
{
IplImage* src;
//if( argc == 2 && (src=cvLoadImage(argv[1],0))!= 0)
if(src=cvLoadImage(argc > argv[1] :"c:\TestImages\pic1.png",0))
{
IplImage* dst = cvCreateImage( cvGetSize(src),8,1 );
IplImage* color_dst = cvCreateImage( cvGetSize(src),8,3 );
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* lines = 0;
int i;
cvCanny( src,dst,50,200,3 );
cvCvtColor( dst,color_dst,CV_GRAY2BGR );
#if 1
lines = cvHoughLines2( dst,storage,CV_HOUGH_STANDARD,1,CV_PI/180,150,0,0 );
for( i = 0; i < lines->total; i++ )
{
float* line = (float*)cvGetSeqElem(lines,i);
float rho = line[0];
float theta = line[1];
CvPoint pt1,pt2;
double a = cos(theta),b = sin(theta);
if( fabs(b) < 0.001 )
{
pt1.x = pt2.x = cvRound(rho);
pt1.y = 0;
pt2.y = color_dst->height;
}
else if( fabs(a) < 0.001 )
{
pt1.y = pt2.y = cvRound(rho);
pt1.x = 0;
pt2.x = color_dst->width;
}
else
{
pt1.x = 0;
pt1.y = cvRound(rho/b);
pt2.x = cvRound(rho/a);
pt2.y = 0;
}
cvLine( color_dst,pt1,pt2,CV_RGB(255,0,0),1,8 );
}
#endif
cvNamedWindow( "Source",1 );
cvShowImage( "Source",src );
cvNamedWindow( "Hough",1 );
cvShowImage( "Hough",color_dst );
cvWaitKey(0);
}
}
我想要得到角度.之后根据这个角度对图像进行旋转.
xfx_01281年前1
熟透的苹果 共回答了12个问题 | 采纳率100%
你的图是怎样的?
cvHoughLines2能得到多个直线段,你要的到哪个角度啊?
opencv如何将IPL_DEPTH_16U的图像转换为IPL_DEPTH_8U的图像
opencv如何将IPL_DEPTH_16U的图像转换为IPL_DEPTH_8U的图像
把16位转换成8位图像
boyheroNO11年前1
股祸人心 共回答了22个问题 | 采纳率90.9%
cvConvertScale(image16u,image8u,255,0)
你试试这样做可以吗
利用OPENCV 求解一组(15个)向量的协方差和平均值
利用OPENCV 求解一组(15个)向量的协方差和平均值
向量都是50维的,求解后得到一个均值也是50维向量,一个协方差是50*50的对称矩阵...
西北狼sdx1年前1
179564417 共回答了15个问题 | 采纳率80%
void cvCalcCovarMatrix(const CvArr** vects,int count,CvArr* cov_mat,CvArr* avg,int flags );其中,vect是输入向量或矩阵count是输入的向量数目cov_mat是输出协方差矩阵,必须是方阵且是浮点型avg是输入的均值向量...
用opencv进行摄像头的标定时,怎么求取基线距离,焦距f,dx,dy,均已知!
山上21年前1
雪白的羽毛6 共回答了9个问题 | 采纳率100%
stereocalib后 输出的结果中 T 中的第一个数值 即为基线距离 即Tx
给定一个点坐标,和一个角度(即斜率),如何在一幅图上画出这条直线?用opencv或C实现
给定一个点坐标,和一个角度(即斜率),如何在一幅图上画出这条直线?用opencv或C实现
如果用函数cvline的话需要知道两个点坐标,但是现在我们要做的是根据这个角度和这个点来确定那另外一个点的坐标,所以提前要想知道另一个点并用cvline画直线是不现实的,还有别的方法吗?
uiazn1年前1
lgmql14 共回答了14个问题 | 采纳率92.9%
根据点和角度,能画出一条射线,除非知道这条射线的长度
opencv进行开运算操作时,得到图像的轮廓与原二值图轮廓为什么有一定的移动量?
gwa20021年前1
cdromNARI 共回答了18个问题 | 采纳率100%
开运算的目的主要是使图像轮廓变得光滑,断开狭窄的间断和消除细的突出物.也就是说开运算不是专门用作提取图像边缘的,若要提取图像边缘可采用canny,laplace算子等方法.
opencv只提取最外层轮廓,结果却提取了画布的最外层.
opencv只提取最外层轮廓,结果却提取了画布的最外层.
cvFindContours(bw,storage,&contour,sizeof(CvContour),CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);
cryinsunkiss1年前1
薇诺尼卡儿 共回答了22个问题 | 采纳率86.4%
在你另外一个问题里已经回答你了.
opencv 求解释语句:((uchar*)(Img1->imageData + Img1->widthStep*pt.
opencv 求解释语句:((uchar*)(Img1->imageData + Img1->widthStep*pt.y))[pt.x]的具体含义
如题.
首先widthStep;/* 排列的图像行大小,以字节为单位 */能否用通俗点语言解释一下“排列的图像行大小”?
然后是Img->imageData + Img->widthStep*pt.y,widthStep乘以y坐标加到imagedata里是什么意思;
(uchar*)应该是强制类型转换吧?
其次整体加完后,放在[pt.
最后,整个语句起到的作用?
opencv小菜鸟,请高手不吝赐教,答的好有加分
快乐平安就好1年前1
yang8960919 共回答了20个问题 | 采纳率90%
你应该是刚学opncv吧,widthstep是指图像每行所占的字节数,主要要和width区别,width是指每行所含的像素个数,但是一个像素也可能占一个字节,也可能占三个字节或者四个.imagedata是指向存储图像像素值数组的指针,内容是这个数组的首地址,pt.y指的是像素点的行坐标,所以Img->imageData + Img->widthStep*pt.y便是该像素点所在行的首地址,然后再加上该像素点所在的列,即pt.x,就得到了该像素点的地址,所以你的那句代码也可以写成
((uchar*)(Img1->imageData + Img1->widthStep*pt.y+pt.x)),都是指该像素点的像素值,至于强制类型转换,是因为会产生一些负值,而像素值是不能为负的.不用加分,
opencv HMM 的使用方法
opencv HMM 的使用方法
最好是C的源码
或者解释一下CvEHMM 中的level是什么意思?
Embedded HMM 中的Embedded
文凌风1021年前1
phototropin 共回答了22个问题 | 采纳率90.9%
实际上是一种分层的HMM, 即超级马尔科夫状态中又含有次级马尔科夫链.
OPENCV中CV_PI /
louiseying1年前3
wangyi323 共回答了22个问题 | 采纳率90.9%
就是弧度制中角度1度对应的值 比如说近似1.57=(CV_PI/180) *90 即90度角对应的弧度值
opencv hough变换如何求最长的直线长度
opencv hough变换如何求最长的直线长度
如图,我想用opencv带的hough变换检测出直线后,求出最长的那条直线的长度.怎么实现,我是菜鸟,有代码更好(主要不知道怎么获得线的长度).
炒风1年前1
shyifysidu 共回答了26个问题 | 采纳率88.5%
这个挺简单的,百度hi我,给你解释解释
opencv如何计算运动物体的速度?
opencv如何计算运动物体的速度?
我已经得出目标每一帧的质心位置p(x,y),下一步如何求运动物体的速度呢?
liuu1年前1
ROBERT908 共回答了19个问题 | 采纳率89.5%
你可以根据相邻帧间质心坐标的欧式距离来估算速度.
我以前做一个项目是根据目标的前沿方向来做的,跟踪目标,然后找到目标的最前沿的点,相邻两帧间的像素差设为PixelDiff,然后根据帧率FPS,就可以大概的估算出运动物体的速度V=Pixel*FPS.(注意,这里最好有个换算比例,比如你物体的图像尺寸与真实物体尺寸的比例,这样就可以根据这个比例来换算运动物体在真实世界的大概运算速度了.设物体像素尺寸与真实物体尺寸比为:S,则速度就可以表示为:V=PixelDiff/S*FPS.如果物体运动比较慢,相邻帧间的像素差比较小,那么可以隔一定的帧数来计算.
遇到难题了我用C#(+EmguCV+OpenCV)调用matlaB写的小波分解函数 但是不成功 有错误 代码如下:usi
遇到难题了
我用C#(+EmguCV+OpenCV)调用matlaB写的小波分解函数 但是不成功 有错误 代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.UI;
using Emgu.Util;
using MathWorks.MATLAB;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using MyFunctionComponent;
namespace CSharp_Matlab
{
public partial class Form1 :Form
{
MyFunctionCacu myClass = new MyFunctionCacu();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender,EventArgs e)
{
int x = 4;
MWArray result = myClass.mysum((MWArray)x);
textBox1.Text = result.ToString();
}
private void button2_Click(object sender,EventArgs e)
{
IntPtr pImage = CvInvoke.cvLoadImage(@"D:Documents and SettingsNew AdministratorMy DocumentsMy Pictures4.jpg",LOAD_IMAGE_TYPE.CV_LOAD_IMAGE_COLOR);
int dim = 3;
object srcImg = (object)pImage;
object y;
IntPtr dst = IntPtr.Zero;
y = (object)myClass.mywavedec2((MWArray)srcImg,(MWArray)dim);
CvInvoke.cvCopy((IntPtr)y,dst,IntPtr.Zero);
CvInvoke.cvNamedWindow("小波分解图像");
CvInvoke.cvShowImage("小波分解图像",dst);
CvInvoke.cvReleaseImage(ref pImage);
CvInvoke.cvReleaseImage(ref dst);
}
}
}
错误如图所示:
关注移动1年前1
说句话就走 共回答了21个问题 | 采纳率95.2%
图看不清,能把错误提示也写出来吗?
opencv中Scalar 是什么?
法律法规1年前1
大哥我真抽了 共回答了21个问题 | 采纳率95.2%
是一个结构体,常用来存储像素,比如Scalar s;
s=cvGet2D(pImg,x,y);
s.val[0],s.val[1],s.val[2]就是对于的图像BGR的值
VS2010下配置openCV2.2后写了个关于标定的程序
VS2010下配置openCV2.2后写了个关于标定的程序
在编译后出现如下错误:
1>Cal.obj :error LNK2019:无法解析的外部符号 _cvCalibrateCamera2,该符号在函数 _wmain 中被引用
1>Cal.obj :error LNK2019:无法解析的外部符号 _cvDrawChessboardCorners,该符号在函数 _wmain 中被引用
1>Cal.obj :error LNK2019:无法解析的外部符号 _cvFindChessboardCorners,该符号在函数 _wmain 中被引用
1>C:UserskangDesktopCalDebugCal.exe :fatal error LNK1120:3 个无法解析的外部命令
不知道有没有人知道是哪没有配置好?
opencv_core220d.lib
opencv_highgui220d.lib
opencv_video220d.lib
opencv_ml220d.lib
opencv_legacy220d.lib
opencv_imgproc220d.lib
连接已添加!路径已包含!
米玛11年前4
SoarBar 共回答了23个问题 | 采纳率95.7%
我也遇到过这个问题,请问您解决了吗?
我已经解决了,就是少加了几个lib,如:
#pragma comment( lib,"opencv_imgproc243.lib" )
#pragma comment( lib,"opencv_legacy243.lib" )
#pragma comment( lib,"opencv_calib3d243.lib" )
#pragma comment( lib,"opencv_contrib243.lib" )
,加上去就好啦
Opencv中有寻找全局阈值的内部函数吗?
Opencv中有寻找全局阈值的内部函数吗?
难道只能按如下步骤自己写代码?
处理流程:1.为全局阈值选择一个初始估计值T(图像的平均灰度).
2.用T分割图像.产生两组像素:G1有灰度值大于T的像素组成,G2有小于等于T像素组成.
3.计算G1和G2像素的平均灰度值m1和m2;
4.计算一个新的阈值:T = (m1 + m2) / 2;
5.重复步骤2和4,直到连续迭代中的T值间的差为零.
XINGYANBIN1年前1
强盗婆 共回答了17个问题 | 采纳率94.1%
你说对了,没有.
这里有你要的代码
OpenCV摄像机标定的一些问题,
OpenCV摄像机标定的一些问题,
使用函数cvCalibrateCamera2()函数,需要带入角点在图像坐标系中的坐标值与在世界坐标系中的坐标值,其中,图像坐标系中的坐标值通过使用cvFindChessboardCorners()与FindCornerSubPix()两个函数得到,那么世界坐标系中的坐标值怎么处理?
另外,由于每张图像标定板的位置都发生变化,所以每幅图像标定出的外参矩阵R和T都各不相同吧?那么如果我用标定完成的摄像机拍摄图像,计算图像中的二维点在三维空间中的坐标信息,那么这里使用的R和T是我自己定义的吗?
组织1231年前2
我和我的果冻 共回答了22个问题 | 采纳率81.8%
世界坐标值,根据标定板的尺寸自己生成相应矩阵;
每一幅图像对应的外参数是不一样的,外参数值指的是景物坐标系相对于相机坐标系的转换关系;
自己定义的RT是什么意思?单个摄像机拍摄的图像是不能得到景物点的三维坐标的,缺少景深信息.可以参考OpenCV相关教程,如果要的话,
opencv 分类器训练 正负样本数量一般取多少比较好?为什么训练过程中总是训练几步就停止?
opencv 分类器训练 正负样本数量一般取多少比较好?为什么训练过程中总是训练几步就停止?
如题.请大虾指教,
vc15love1年前1
KILLKK123 共回答了17个问题 | 采纳率94.1%
训练提前终止,原因应该是:
1 迭代次数设置的太小.
2 总体误差设置的太大.
opencv 通过四个坐标截取四边形
opencv 通过四个坐标截取四边形
我知道怎么用ROI截取正矩形,但是如果矩形不是正的,是歪的,或者倾斜的又怎么截取呢?我已经有矩形四个顶点的坐标
lindeman1年前1
守望白桦 共回答了17个问题 | 采纳率82.4%
可以利用四个顶点的坐标进行倾斜校正,之后再截图你要的矩形
opencv 中将图像中的某点颜色提取怎么写呢~
opencv 中将图像中的某点颜色提取怎么写呢~
如题
levivienne1年前1
eahddvw9 共回答了19个问题 | 采纳率89.5%
((uchar *)(ipl_img->imageData + x * ipl_img->widthStep ))[(y+ ipl_img->width)* ipl_img->nChannels + 0] = ((src->imageData + ((int)j) * src->widthStep ))[((int)i) * src->nChannels + 0]; //改变该像素b的颜色分量
((uchar *)(ipl_img->imageData + x * ipl_img->widthStep ))[(y + ipl_img->width)* ipl_img->nChannels + 1] = ((src->imageData + ((int)j) * src->widthStep ))[((int)i)* src->nChannels + 1] ; //改变该像素g的颜色分量
((uchar *)(ipl_img->imageData + x * ipl_img->widthStep ))[(y+ ipl_img->width) * ipl_img->nChannels + 2] = ((src->imageData + ((int)j) * src->widthStep ))[((int)i)* src->nChannels + 2]; //改变该像素r的颜色分量
opencv 去除二值图像中的小面积区域,需要有个阈值区分目标面积和小面积区域,这个阈值能用什么方法求得
我是闲人一号1年前1
caxie16 共回答了15个问题 | 采纳率86.7%
这个看你怎么定义你的目标了,如果有小于X就不是目标这样的定义,那就拿X去做阈值就行了.
在OpenCV中,CV_16SC4所表示的含义,
西施在广州1年前1
dancedance 共回答了23个问题 | 采纳率95.7%
CV是opencv的前缀,16代表16位,SC是short类型,4是双通道.
英语翻译麻烦帮忙翻译下这段话到底啥意思?opencv will clober the image it detects
英语翻译
麻烦帮忙翻译下这段话到底啥意思?
opencv will clober the image it detects contours on,so we want to copy it into a copy before we detect contours.That copy is allocated if necessary (necessary = (a) not allocated or (b) wrong size) so be careful if you pass in different sized images to "findContours" there is a performance penalty,but we think there is not a memory leak to worry about better to create mutiple contour finders for different sizes,ie,if you are finding contours in a 640x480 image but also a 320x240 image better to make two ofxCvContourFinder objects then to use one,because you will get penalized less.
但是希望能有牛人认真翻译一下 不要用翻译器翻译的
迪45661年前4
fengzhiwen88 共回答了17个问题 | 采纳率88.2%
我看了一下,您这文章肯定是非英语国家的人写的,从句很乱,是中国人写的可能性90%,看看最后一句话,估计只有懂中文的才能明白.
我认真帮你翻一下,不过几个名词我不懂,词霸都查不到,不知是哪里来的高词.是你的专业词汇估计你也应该看得明白吧.后面的than写成then了.转折句用的没逻辑.
opencv可以clober到图像探测到的等高线(轮廓),所以我们要再探测到等高线前要拷贝到一个拷贝文件里面去.这个文件会分配到(必要条件=(a))没有必要分配或者图片尺寸出错(b).所以在上传不同大小的图片到“Find Contours “这一项时会有惩罚(扣分).但是我们认为这里没有记忆漏洞来证明新建一个多重等高线是必要的,举例:比如你再找一个等高线图在一个640x480或者320x240分辨率最好用两个不同的Find Contours ,这样可以减少扣分或者惩罚.
这个等高线可能翻译的不对,这个名词是多义词,我也不知道你的前后文.先做等高线图翻译.
您这个文章,无语.写的太烂.
opencv的cvLogPolar 函数谁会用?我想看到笛卡尔坐标系的放大、缩小、旋转后对应对数极坐标上下左右移动
opencv的cvLogPolar 函数谁会用?我想看到笛卡尔坐标系的放大、缩小、旋转后对应对数极坐标上下左右移动
我看论文不是说笛卡尔坐标系的放大、缩小、旋转后对应对数极坐标系会上下左右移动么?
我想用程序看下效果 比如两幅图 一个原图 一个以中心点旋转45°
最后看一下他们的对数极坐标转换后的图对比一下
回答后追加分
这问题我好像解决了
获取对数极坐标后 如何计算对数极直方图呢?
memboboo1年前1
走着入睡0325 共回答了17个问题 | 采纳率88.2%
我不是很明白的意思,对数极坐标系直方图是指什么?它是对什么做的直方图,颜色?灰度?抑或是方向?不过个人觉得如果你已经得到图像的坐标了,那么直方图的得到和常用的坐标系应该没什么关系吧,创建直方图并不涉及坐标的表达啊?只是统计图像信息而已.没做过这个,纯属个人观点,欢迎讨论!
学opencv需要什么数学知识吗
亲爱的别忘记1年前1
山下打老虎 共回答了15个问题 | 采纳率93.3%
矩阵.线性代数.