openCV在图片上取两点,将这这两点形成的矩形做模糊处理,怎么做? 30
本人刚刚开始用opencv,还不熟悉,我现在要做的内容如下:在一张图片上随机点上两点,这两点作为矩形的对点,所形成的矩形做模糊处理(像素增大变成马赛克)。通过键盘操作改变...
本人刚刚开始用opencv,还不熟悉,我现在要做的内容如下:
在一张图片上随机点上两点,这两点作为矩形的对点,所形成的矩形做模糊处理(像素增大变成马赛克)。
通过键盘操作改变像素大小,比如,点击 i 增大像素,点击 d 减小像素。
可以去除模糊效果,比如,点击R 移除模糊效果。
将最后修改过的图片存到本地文件夹。
这道题主要就是第一条,我已经做了一些,这事关于鼠标点击的方法,还没写完:
Point p1,p2;
bool flag = false;
int mark = 1;
Mat img_resize;
int count = 0;
void mousefunction(int event, int x, int y, int flags, void* userdata)
{
if (event == EVENT_LBUTTONDOWN){
if (flag){
printf("left click on (%d, %d)\n", x, y);
p2 = Point(x, y);
flag = false;
mark = 2;
++count;
}
else{
printf("left click on (%d, %d)\n", x, y);
p1 = Point(x, y);
flag = true;
mark = 1;
++count;
}
if (mark == 2){
for (int j = p1.y; j < p2.y; j++)
{
for (int i = p1.x; i < p2.x; i++)
{
img_resize.ptr<uchar>(y + j)[3 * (x + i)] = img_resize.ptr<uchar>(y + j)[3 * (x + i)] * 2;
img_resize.ptr<uchar>(y + j)[3 * (x + i) + 1] = img_resize.ptr<uchar>(y + j)[3 * (x + i) + 1] * 2;
img_resize.ptr<uchar>(y + j)[3 * (x + i) + 2] = img_resize.ptr<uchar>(y + j)[3 * (x + i) + 2] * 2;
}
}
}
}
这代码只是个参考,还没做模糊处理,希望高手给出代码参考!~ 展开
在一张图片上随机点上两点,这两点作为矩形的对点,所形成的矩形做模糊处理(像素增大变成马赛克)。
通过键盘操作改变像素大小,比如,点击 i 增大像素,点击 d 减小像素。
可以去除模糊效果,比如,点击R 移除模糊效果。
将最后修改过的图片存到本地文件夹。
这道题主要就是第一条,我已经做了一些,这事关于鼠标点击的方法,还没写完:
Point p1,p2;
bool flag = false;
int mark = 1;
Mat img_resize;
int count = 0;
void mousefunction(int event, int x, int y, int flags, void* userdata)
{
if (event == EVENT_LBUTTONDOWN){
if (flag){
printf("left click on (%d, %d)\n", x, y);
p2 = Point(x, y);
flag = false;
mark = 2;
++count;
}
else{
printf("left click on (%d, %d)\n", x, y);
p1 = Point(x, y);
flag = true;
mark = 1;
++count;
}
if (mark == 2){
for (int j = p1.y; j < p2.y; j++)
{
for (int i = p1.x; i < p2.x; i++)
{
img_resize.ptr<uchar>(y + j)[3 * (x + i)] = img_resize.ptr<uchar>(y + j)[3 * (x + i)] * 2;
img_resize.ptr<uchar>(y + j)[3 * (x + i) + 1] = img_resize.ptr<uchar>(y + j)[3 * (x + i) + 1] * 2;
img_resize.ptr<uchar>(y + j)[3 * (x + i) + 2] = img_resize.ptr<uchar>(y + j)[3 * (x + i) + 2] * 2;
}
}
}
}
这代码只是个参考,还没做模糊处理,希望高手给出代码参考!~ 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询