InRange 测试像素的值是否在给定范围内

程序:

核心函数:

cvInRange,cvInRangeS

代码:

#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
int InRangeS(int argc,char** argv)
{
IplImage *src=cvLoadImage("e:\\picture\\4.jpg");
IplImage *dst=cvCreateImage(cvGetSize(src),8,1);
IplImage *dst2=cvCreateImage(cvGetSize(src),8,1);
cvZero(dst);
IplImage *lower=cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
IplImage *upper=cvCreateImage(cvGetSize(src),src->depth,src->nChannels);
for(int rows=0;rows<lower->height;rows++)  //给图像的每个点赋值,也可以用cvSet
{
uchar* pt=(uchar*)(lower->imageData+rows*lower->widthStep);
for(int cols=0;cols<lower->width;cols++)
{
uchar* pt2=(uchar*)(pt+cols*lower->nChannels);
*pt2=100;
*(pt2+1)=100;
*(pt2+2)=100;
}
}
for(int rows=0;rows<upper->height;rows++)
{
uchar* pt=(uchar*)(upper->imageData+rows*upper->widthStep);
for(int cols=0;cols<upper->width;cols++)
{
uchar* pt2=(uchar*)(pt+cols*upper->nChannels);
*pt2=200;
*(pt2+1)=200;
*(pt2+2)=200;
}
}
//cvSet(lower,cvScalar(100,100,100,NULL));
//cvSet(upper,cvScalar(200,200,200,NULL));
cvInRangeS(src,cvScalar(100,100,100),cvScalar(200,200,200),dst);  //测试原图像的像素值是否在给定范围内方法1
cvInRange(src,lower,upper,dst2);                                 ////测试原图像的像素值是否在给定范围内方法2
cvNamedWindow("src");
cvNamedWindow("dst");
cvNamedWindow("lower");
cvNamedWindow("upper");
cvNamedWindow("dst2");
cvShowImage("src",src);
cvShowImage("dst",dst);
cvShowImage("lower",lower);
cvShowImage("upper",upper);
cvShowImage("dst2",dst2);
cvWaitKey(0);
cvDestroyWindow("src");
cvDestroyWindow("dst");
cvDestroyWindow("lower");
cvDestroyWindow("upper");
cvDestroyWindow("dst2");
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvReleaseImage(&lower);
cvReleaseImage(&upper);
cvReleaseImage(&dst2);
return 0;
}

InRange 测试像素的值是否在给定范围内,布布扣,bubuko.com

时间: 2024-11-02 10:34:15

InRange 测试像素的值是否在给定范围内的相关文章

相机(Camera)像素差值设置

MTK 相机像素差值和做假 分类: Android2014-05-30 19:59 474人阅读 评论(0) 收藏 举报 CameraAndroid摄像头 图像比例 拍出图像像素 代码中字串id 相机界面显示像素(英文) 4:3 320x240 @string/pref_camera_picturesize_entry_320x240 QVGA 640x480 @string/pref_camera_picturesize_entry_640x480 VGA 1024x768 @string/p

【OpenCV】访问Mat中每个像素的值

转载:http://blog.csdn.net/xiaowei_cqu/article/details/19839019 Color Reduce 使用经典的 Reduce Color的例子,即对图像中的像素表达进行量化.如常见的RGB24图像有256×256×256中颜色,通过Reduce Color将每个通道的像素减少8倍至256/8=32种,则图像只有32×32×32种颜色.假设量化减少的倍数是N,则代码实现时就是简单的 value/N*N,通常我们会再加上N/2以得到相邻的N的倍数的中间

转载【OpenCV】访问Mat中每个像素的值(新)

转载一个讲Mat像素访问的,仅记为笔记. y原文链接为:http://blog.csdn.net/xiaowei_cqu/article/details/19839019 目录(?)[-] Color Reduce 方法零ptr和操作符 方法一ptr和指针操作 方法二ptr指针操作和取模运算 方法三ptr指针运算和位运算 方法四指针运算 方法五ptr位运算以及imagecols imagechannels 方法六连续图像 方法七continuouschannels 方法八Mat _iterato

(转)OpenCV 访问Mat中每个像素的值

转自:http://blog.csdn.net/xiaowei_cqu/article/details/19839019 在<OpenCV 2 Computer Vision Application Programming Cookbook>看到的例子,非常不错,算是对之前的文章<访问Mat图像中每个像素的值>的回顾和补充. Color Reduce 还是使用经典的Reduce Color的例子,即对图像中的像素表达进行量化.如常见的RGB24图像有256×256×256中颜色,通

捕获未经测试的返回值

前面翻译的一篇文章<使用错误代码对象进行C++错误处理>中提到,作者的灵感来源于另一篇文件<捕获未经测试的返回值>,于是再把这篇文章翻译过来,做为对比,也算是形成一个系列的文章. 前言 函数返回值通常用于表函数是否在没有错误的情况下执行.但是,很难确保调用者适当地使用这些信息(指返回值).也许一些商业工具可以完成这项工作,但你并不总是能获得购买许可,特别是在小型项目中.你很有可能听到过这样说:"我相信你,你不会犯这样的错误." 我在这里提出的想法,是受到几周前我

在给定范围内产生指定个数不重复的随机数

1 public class RandomNumber { 2 /** 3 * 在给定范围内产生指定个数不重复的随机数 4 * @param min 给定范围内最小值 5 * @param max 给定范围内最大值 6 * @param number 产生随机数的个数 7 * @return 8 */ 9 public static int[] createRandomNumber(int min, int max, int number){ 10 if(number > max - min +

接口API测试和返回值JSON解析的插件

火狐插件1.   HttpRequest作用:接口API测试例子:http://192.168.10.61:8080/ZHCS/user/loginApp.do?phone=admin&pwd=admin接口以?作为结束, 连接用& 2.   JSON-handle作用:对json进行解析

测试kernel.pid_max值

# sysctl kernel.pid_max kernel.pid_max = 32768 # sysctl -w kernel.pid_max=500 kernel.pid_max = 500 #include <unistd.h> #include <stdio.h> int main () { pid_t fpid; //fpid表示fork函数返回的值 int count=0; while(1) { fpid=fork(); if (fpid < 0) { prin

找出给定数组内有多少重复的数,并打印它们对应的位置。

local t = {1, 7, 2, 5, 4, 9, 9, 7, 2, 2, 2, 5, 5} function seekNum(t) local dic_count = {} local dic_pos = {} for i=1,#t do if dic_count[tostring(t[i])] == nil then dic_count[tostring(t[i])] = 1 else local index = table.indexOf(t, t[i]) dic_count[tos