| 
									
										
										
										
											2025-03-07 11:39:01 +08:00
										 |  |  | #include"opencv_test.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | opencv_t::opencv_t() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | opencv_t::~opencv_t() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | opencv_t* opencv_t::create_new() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	opencv_t* temp = nullptr; | 
					
						
							|  |  |  | 	temp = new opencv_t(); | 
					
						
							|  |  |  | 	return temp; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void opencv_t::visit_xiangsu(Mat& temp) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	int w = temp.cols; | 
					
						
							|  |  |  | 	int h = temp.rows; | 
					
						
							|  |  |  | 	int dims = temp.channels(); | 
					
						
							|  |  |  | 	for (int row = 0; row < h; row++) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		for (int col = 0; col < w; col++) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			if (dims == 1) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				int pv = temp.at<uchar>(row, col); | 
					
						
							|  |  |  | 				temp.at<uchar>(row, col) = 255 - pv; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			else if (dims == 3) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				Vec3b pv = temp.at<Vec3b>(row, col); | 
					
						
							|  |  |  | 				temp.at<Vec3b>(row, col)[0] = 255 - pv[0]; | 
					
						
							|  |  |  | 				temp.at<Vec3b>(row, col)[1] = 255 - pv[1]; | 
					
						
							|  |  |  | 				temp.at<Vec3b>(row, col)[2] = 255 - pv[2]; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2025-03-07 12:00:23 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | void opencv_t::visit_xiangsu(Mat& temp, int a) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	int w = temp.cols; | 
					
						
							|  |  |  | 	int h = temp.rows; | 
					
						
							|  |  |  | 	int dims = temp.channels(); | 
					
						
							|  |  |  | 	for (int row = 0; row < h; row++) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		uchar* curr = temp.ptr<uchar>(row); | 
					
						
							|  |  |  | 		for (int col = 0; col < w; col++) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			if (dims == 1) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				int pv = *curr; | 
					
						
							|  |  |  | 				*curr++ = 255 - pv; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			else if (dims == 3) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				*curr++ = 255 - *curr; | 
					
						
							|  |  |  | 				*curr++ = 255 - *curr; | 
					
						
							|  |  |  | 				*curr++ = 255 - *curr; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |