如何阈值之间的多个范围在opencv
how to threshold between multiple range in opencv
我是opencv的新手,我在windows7U(64位)上使用vs10c++的opencv2.4.5。我的项目是在阈值处理范围在140到160之间后显示图像,但我对最后一行
感到挂机下面是我的代码;
int main( int argc, char* argv[] )
{
//open the video
VideoCapture cap2(argv[2]);
if ( !cap2.isOpened() )
{
cout << "Cannot open the video file" << endl;
return -1;
}
//Threshold value of 140 to 160
if( cap2.isOpened() )
{
Mat frame, frame_gray, result;
for(;;)
{
int n;
int t1=140, t2=160;
n = 255;
cap2>>frame;
cvtColor( frame, frame_gray, CV_BGR2GRAY );
for (int i=0;i<frame_gray.size().height;i++)
{
for(int j=0;j<frame_gray.size().width;j++)
{
uchar val;
val = frame_gray.at<uchar>(j,i);
if (val>t1 && val<t2)
{val=255;}
else
{val=0;}
frame_gray.at<uchar>(j,i)=val;
}
如何显示过程循环多范围阈值后的结果?
你所需要的是inRange(),它将检查数组元素是否位于两个数组的元素之间。
所以把你的代码改成Mat thr;
inRange(frame_gray, Scalar(140),Scalar(160),thr);
imshow("processed",thr);
waitKey();
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用范围(OpenCV)脱粒RGB图像
- 如何在OpenCV 3.4.7中计算CV_32FC1 cv::GpuMat图像的(范围)直方图
- 移植:OpenCV 2.4.3 -> OpenCV 3.1.,cvGetMat 未在此范围内声明
- OpenCV-浮动数据类型和强度范围在0-255范围内的RGB通道
- 结构从运动(openCV):“重建”未在此范围内声明
- 将自适应阈值应用于范围函数 opencv c++
- OPENCV图像处理,向量下标超出范围
- 检测 OpenCV 中"average"的颜色范围
- 矢量下标超出范围 Opencv
- OpenCV 符号未在此范围内声明
- 未在此范围中声明Opencv变量
- OpenCV:“SiftDescriptorExtractor”未在此范围内声明
- Matlab to OpenCV:在一定范围内具有值的像素的掩码
- OpenCV C++:从存储在 int 向量的索引中为垫子类型数据创建列范围
- 矢量下标超出范围 opencv c++
- 如何缩放opencv中[0,1]范围内的像素值
- Opencv DMatch距离超出范围
- 如何阈值之间的多个范围在opencv