网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月21日漏签0天
opencv吧 关注:15,777贴子:35,305
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回opencv吧
>0< 加载中...

Opencv进行直线检测,C++编程,检测完直线后想在原图上标注。

  • 只看楼主
  • 收藏

  • 回复
  • 西区吹吹风
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace std;
int main (int argc, char **argv)
{
const char *pstrWindowsSrcTitle = "initial";
const char *pstrWindowsLineName = "hough";
IplImage *pSrcImage = cvLoadImage("f:\\A.jpg", CV_LOAD_IMAGE_UNCHANGED);
IplImage *pGrayImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);
cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY);
IplImage *pCannyImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);
cvCanny(pGrayImage, pCannyImage, 30, 90);
CvMemStorage *pcvMStorage = cvCreateMemStorage();
double fRho = 1;
double fTheta = CV_PI / 180;
int nMaxLineNumber = 50;
double fMinLineLen = 50;
double fMinLineGap = 10;
CvSeq *pcvSeqLines = cvHoughLines2(pCannyImage, pcvMStorage, CV_HOUGH_PROBABILISTIC, fRho, fTheta, nMaxLineNumber, fMinLineLen, fMinLineGap);
IplImage *pColorImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 3);
cvCvtColor(pCannyImage, pColorImage, CV_GRAY2BGR);
int i;
for(i = 0; i < pcvSeqLines->total; i++)
{
CvPoint* line = (CvPoint*)cvGetSeqElem(pcvSeqLines, i);
cvLine(pColorImage, line[0], line[1], CV_RGB(255,0,0), 3);
}
cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);
cvShowImage(pstrWindowsSrcTitle, pSrcImage);
cvNamedWindow(pstrWindowsLineName, CV_WINDOW_AUTOSIZE);
cvShowImage(pstrWindowsLineName, pColorImage);
cvWaitKey(0);
cvReleaseMemStorage(&pcvMStorage);
cvDestroyWindow(pstrWindowsSrcTitle);
cvDestroyWindow(pstrWindowsLineName);
cvReleaseImage(&pSrcImage);
cvReleaseImage(&pGrayImage);
cvReleaseImage(&pCannyImage);
cvReleaseImage(&pColorImage);
return 0;
}
这是编写的代码,怎么修改,可以在原图上标注直线。(第一张是原图,第二张是直线检测后标注在边缘的图,想标注在原图上,怎么改程序?急求啊!!!


  • 西区吹吹风
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大神帮忙!!!!


2026-02-21 11:31:27
广告
不感兴趣
开通SVIP免广告
  • 西区吹吹风
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
坐等啊!!!


  • 西区吹吹风
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
有没有会的大神啊


  • 贴吧用户_0QDP56e
  • 人中龙凤
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看到CvLine那个函数了吗,它就是在pColorImage上画线的。你的pColorImage是由cannyImage转换来的,已经丢失了原来的信息了。cvCopy(src,dst)拷贝原始图像就可以解决了。


  • 龙的传人520134
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
QQ:2784086935


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回opencv吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示