使用Canny算子进行边缘检测,并分开输出到三个窗口中,再给每一个窗口添加文字
代码
```
#include"cv.h"
#include"highgui.h"
//读入视频并转换为灰度图再作边缘检测
//并分开三个窗口输出
IplImage *frame,*gray,*canny,*uni,*temp;
int wid=-1, hei=-1;
int main(void)
{
CvCapture *src = cvCreateFileCapture("Megamind.avi");
//cvNamedWindow("Union");
cvNamedWindow("Origin");
cvNamedWindow("Gray");
cvNamedWindow("Canny");
CvFont r, g, c;
cvInitFont(&r, CV_FONT_HERSHEY_TRIPLEX, 1, 1, 0);
cvInitFont(&g, CV_FONT_HERSHEY_TRIPLEX, 1, 1, 0);
cvInitFont(&c, CV_FONT_HERSHEY_TRIPLEX, 1, 1, 0);
while (1)
{
frame = cvQueryFrame(src);
if (!frame)
break;
/*if (wid == -1)
{
wid = frame->width;
hei = frame->height;
}*/
if (cvWaitKey(33) == 27)
break;
temp = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 3);
cvCopy(frame, temp);
cvPutText(temp, "Original", CvPoint(10, 30), &r, CV_RGB(0, 204, 153));//显示文字
cvShowImage("Origin", temp);
gray = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 1);//先创建图像指针
cvConvertImage(frame, gray);
canny = cvCreateImage(cvGetSize(gray), IPL_DEPTH_8U, 1);//同上先创建
cvPutText(gray, "Gray", CvPoint(10, 30), &g, CV_RGB(0, 204, 153));//显示文字
cvShowImage("Gray", gray);//显示到灰度窗口中
cvCanny(gray, canny, 20, 250, 3);//边缘检测处理
cvPutText(canny, "Canny", CvPoint(10, 30), &c, CV_RGB(0, 204, 153));
cvShowImage("Canny", canny);//显示到边缘检测窗口中
/*uni = cvCreateImage(CvSize(3 * frame->width, frame->width), IPL_DEPTH_8U,3);
CvRect pos1 = CvRect(0, 0, wid, hei);
CvRect pos2 = CvRect(wid, 0, wid, hei);
CvRect pos3 = CvRect(2*wid, 0 ,wid, hei);
cvSetImageROI(uni, pos1);
cvCopy(frame, uni);
cvResetImageROI(uni);
cvSetImageROI(uni, pos2);
uni->nChannels = 1;
cvCopy(gray, uni);
cvResetImageROI(uni);
cvSetImageROI(uni, pos3);
uni->nChannels = 1;
cvCopy(canny, uni);
cvResetImageROI(uni);
cvShowImage("Union", uni);*/
}
cvDestroyAllWindows();
cvReleaseCapture(&src);
cvReleaseImage(&gray);
cvReleaseImage(&canny);
return 0;
}****
```
- 序言
- 编解码
- H264
- HEVC码流解析
- H264编码原理
- 多媒体封装
- MP4
- 学好 MP4,让直播更给力
- AAC
- FLV
- 流媒体协议
- RTSP
- RTCP
- RTP
- H265 RTP封包笔记
- SDP
- RTMP
- RTMP URL
- rtmp url基础
- webrtc
- 编译
- 最简单的编译webrtc方案
- Webrtc音视频会议之Webrtc“不求甚解”
- Webrtc音视频会议之Mesh/MCU/SFU三种架构
- 音频传输之Jitter Buffer设计与实现
- Janus
- Webrtc音视频会议之Janus编译
- Webrtc音视频会议之Janus源码架构设计
- webrtc服务器-janus房间管理
- 源码分析
- WebRTC视频JitterBuffer详解
- 走读Webrtc 中的视频JitterBuffer(一)
- 走读webrtc 中的视频JitterBuffer(二)
- webrtc视频帧率控制算法机制
- 目标码率丢帧-1
- 目标帧率丢帧-2
- 29 如何使用Medooze 实现多方视频会议
- FFmpeg
- FFmpeg编译
- Window10下编译最新版FFmpeg的方法步骤
- FFMPEG静态库编译
- ffmpeg实现画中画
- FFmpeg推流器
- ffmpeg-aac
- OpenCV
- OpenCV学习笔记——视频的边缘检测
- 图像特征点匹配(视频质量诊断、画面抖动检测)
- 图像质量诊断