1 #include "opencv2/highgui/highgui.hpp" 2 #include "opencv2/imgproc/imgproc.hpp" 3 #include <iostream> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 using namespace cv; 8 using namespace std; 9 10 /// Global variables 11 Mat src, src_gray; 12 int thresh = 200; 13 int max_thresh = 255; 14 15 char* source_window = "Source image"; 16 char* corners_window = "Corners detected"; 17 18 /// Function header 19 void cornerHarris_demo( int, void* ); 20 21 /** @function main */ 22 int main( int argc, char** argv ) 23 { 24 /// Load source image and convert it to gray 25 src = imread( argv[1], 1 ); 26 cvtColor( src, src_gray, CV_BGR2GRAY ); 27 28 /// Create a window and a trackbar 29 namedWindow( source_window, CV_WINDOW_AUTOSIZE ); 30 createTrackbar( "Threshold: ", source_window, &thresh, max_thresh, cornerHarris_demo ); 31 imshow( source_window, src ); 32 33 cornerHarris_demo( 0, 0 ); 34 35 waitKey(0); 36 return(0); 37 } 38 39 /** @function cornerHarris_demo */ 40 void cornerHarris_demo( int, void* ) 41 { 42 43 Mat dst, dst_norm, dst_norm_scaled; 44 dst = Mat::zeros( src.size(), CV_32FC1 ); 45 46 /// Detector parameters 47 int blockSize = 2; 48 int apertureSize = 3; 49 double k = 0.04; 50 51 /// Detecting corners 52 cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT ); 53 54 /// Normalizing 55 normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() ); 56 convertScaleAbs( dst_norm, dst_norm_scaled ); 57 58 /// Drawing a circle around corners 59 for( int j = 0; j < dst_norm.rows ; j++ ) 60 { for( int i = 0; i < dst_norm.cols; i++ ) 61 { 62 if( (int) dst_norm.at<float>(j,i) > thresh ) 63 { 64 circle( dst_norm_scaled, Point( i, j ), 5, Scalar(0), 2, 8, 0 ); 65 } 66 } 67 } 68 /// Showing the result 69 namedWindow( corners_window, CV_WINDOW_AUTOSIZE ); 70 imshow( corners_window, dst_norm_scaled ); 71 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)