推荐 原创
NCUTer 2023-04-04 14:18:49
文章标签 Image 图像处理 文章分类 计算机视觉 人工智能 在51CTO的第一篇博文 阅读数1467
- #include<opencv2/opencv.hpp>
- #include<iostream>
-
- using namespace cv;
- using namespace std;
-
- int main()
- {
- string path = "Resources/lambo.png";//图片的路径名
- Mat img = imread(path);//将图片加载后赋值到图像变量img中
- //if (path.empty()) { cout << "file not loaded" << endl; }
- //检查文件是否打开 没打开时执行打印语句
- //namedWindow("Image", WINDOW_FREERATIO);//创建一个名为Image的可调节的窗口
- imshow("Image", img);//创建一个窗口来显示图像img
- waitKey(0);//不断刷新图像
- return 0;
- }
- #include <opencv2/opencv.hpp>
- #include <iostream>
-
- using namespace cv;
- using namespace std;
-
- void main() {
-
- string path = "Resources/test.png";
- Mat img = imread(path);
- Mat imgGray,imgBlur,imgCanny,imgDil,imgErode;
- //将照片转换为灰度
- cvtColor(img, imgGray, COLOR_BGR2GRAY);
- //高斯模糊
- GaussianBlur(imgGray, imgBlur, Size(3, 3), 3, 0);
- //Canny边缘检测器 一般在使用Canny边缘检测器之前会做一些模糊处理
- Canny(imgBlur, imgCanny, 25, 75);
- //创建一个可以使用膨胀的内核
- Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));
- //图像膨胀
- dilate(imgCanny, imgDil, kernel);
- //图像侵蚀
- erode(imgDil, imgErode, kernel);
- //结果呈现
- imshow("Image", img);
- imshow("Image Gray", imgGray);
- imshow("Image Blur", imgBlur);
- imshow("Image Canny", imgCanny);
- imshow("Image Dilation", imgDil);
- imshow("Image Erode", imgErode);
-
- waitKey(0);
- }
Canny(imgBlur, imgCanny, 25, 75);
第3和第4个参数分别代表底阈值和高阈值,其中底阈值常取高阈值的1/2或1/3
- #include <opencv2/opencv.hpp>
- #include <iostream>
-
- using namespace cv;
- using namespace std;
-
- void main() {
-
- string path = "Resources/test.png";
- Mat img = imread(path);
- Mat imgResize,imgCrop;
- //调整图像大小
- //cout << img.size() << endl;//查看原图像的大小
- //resize(img, imgResize, Size(640, 480));//按自定义的宽度与高度缩放
- resize(img, imgResize, Size(),0.5,0.5);//按比例缩放
- //图像裁剪
- Rect roi(200, 100, 300, 300);
- //前面两个参数为距左上原点的x方向与y方向的距离,后两个参数为延伸的x,y长度
- imgCrop = img(roi);
-
- imshow("Image", img);
- imshow("Image Resize", imgResize);
- imshow("Image Crop", imgCrop);
- waitKey(0);
-
- }
void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation = INTER_LINEAR)
调整图像的大小。函数 resize 将图像 src 的大小缩小到或最大到指定的大小。请注意,不考虑初始 dst 类型或大小。相反,大小和类型是从 src、dsize、fx 和 fy 派生的。
- #include <opencv2/opencv.hpp>
- #include <iostream>
-
- using namespace cv;
- using namespace std;
-
- int main()
- {
- //Blank Image
- Mat img(512, 512, CV_8UC3, Scalar(255, 255, 255));
-
- circle(img, Point(256, 256), 155, Scalar(0, 69, 255), FILLED);
- rectangle(img, Point(130, 226), Point(382, 286), Scalar(255, 255, 255), -1);
- line(img, Point(130, 296), Point(382, 296), Scalar(255, 255, 255), 2);
-
- putText(img, "Murtaza's Workshop", Point(137, 262), FONT_HERSHEY_DUPLEX, 0.95, Scalar(0, 69, 255), 2);
-
- imshow("Image