Gradient of opencv_ image
#include "stdafx.h" #include "cv.h" #include "cxcore.h" #include "highgui.h" using namespace std;using namespace Cv;int Main (int argc, char **argv) {Cvpoint center;//defines a two-dimensional coordinate point double scale = -3;int i,j; Mat image = Imread ("pic.jpg");//Open a picture if (!image.data) return-1;center=point2f (IMAGE.COLS/2,IMAGE.ROWS/2);// Construct this two-dimensional coordinate point mat ptr[3]; Mat Gradimg;split (IMAGE,PTR); for (int. i=0;i<image.rows;i++) {for (int j=0;j<image.cols;j++) {double dx= (double) ( j-center.x)/center.x;double dy= (double) (I-CENTER.Y)/center.y;double weight =exp ((dx*dx+dy*dy) *scale);p tr[0].at <uchar> (I,J) = (int) ptr[0].at<uchar> (i,j) *weight;//converts floating-point numbers to integers. Ptr[1].at<uchar> (I,J) = (int) ptr[1].at<uchar> (i,j) *weight;ptr[2].at<uchar> (i,j) = (int) ptr[2].at <uchar> (I,j) *weight;}} Merge (ptr,3,gradimg); Imshow ("window", gradimg); Cvwaitkey ( -1); return 0;}
Effect:
Opencv_ Image Gradient