#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace cv;
#define WINDOW "Image"
//opencv没有按钮功能,常用滚动条代替
int g_pVal;//滚动条当前值
int g_max;//滚动条最大值
Mat redImage;
Mat tmpImage;
void callFunc(int, void* ){
auto it=tmpImage.begin<Vec3b>();
auto itend=tmpImage.end<Vec3b>();
auto it2=redImage.begin<Vec3b>();
auto itend2=redImage.end<Vec3b>();
while(it2!=itend2){
if((*it2)[2]-30>(*it2)[0]&&(*it2)[2]-30>(*it2)[1]){//改变图中红色部分的r通道
(*it)[2]=g_pVal;
}
it++;
it2++;
}
imshow(WINDOW,tmpImage);
}
int main(){
redImage=imread("redflo.bmp",1);
redImage.copyTo(tmpImage);
namedWindow(WINDOW,CV_WINDOW_AUTOSIZE);
g_pVal=0;
g_max=200;
createTrackbar("bar",WINDOW,&g_pVal,g_max,callFunc);//参数分别为:滚动条名,窗口名,整形指针表示滑块初始位置,
//最大值,指向回调函数指针,传给回调函数的数据
callFunc(g_pVal,NULL);
waitKey(0);
return 0;
}OpenCV笔记(三)
最新推荐文章于 2025-07-31 23:45:53 发布
4万+

被折叠的 条评论
为什么被折叠?



