精华内容
下载资源
问答
  • 直接RGB图片上画直线矩形多边形写字-bitmap_plot_v1_2.zip 使用方法: 首先使用正常的imread函数,把你的图片读到工作空间里: I=imread;  % 画一条直线  x=rand*50 50; y=linspace;  I=...
  • C#图片处理之:在图片上画直线

    千次阅读 2008-10-26 10:17:00
    在图片上画直线比画框更简单。线形的控制还是通过对Pen的设置来实现的。 /**//// /// 在图片上画线 /// /// 原始图 /// 起始点 /// 终止点 /// 线的颜色 /// 线宽 /// 线条样式 /// 输出图 p

    在图片上画直线比画框更简单。线形的控制还是通过对Pen的设置来实现的。

             /// <summary>
            
    /// 在图片上画线
            
    /// </summary>
            
    /// <param name="bmp">原始图</param>
            
    /// <param name="p0">起始点</param>
            
    /// <param name="p1">终止点</param>
            
    /// <param name="RectColor">线的颜色</param>
            
    /// <param name="LineWidth">线宽</param>
            
    /// <param name="ds">线条样式</param>
            
    /// <returns>输出图</returns>

             public   static  Bitmap DrawLineInPicture(Bitmap bmp, Point p0, Point p1, Color LineColor,  int  LineWidth, DashStyle ds)
            
    {
                
    if (bmp == nullreturn null;

                
    if (p0.X == p1.X || p0.Y == p1.Y) return bmp;

                Graphics g 
    = Graphics.FromImage(bmp);

                Brush brush 
    = new SolidBrush(LineColor);

                Pen pen 
    = new Pen(brush, LineWidth);
                
    //pen.Alignment = PenAlignment.Inset;

                pen.DashStyle 
    = ds;

                g.DrawLine(pen,p0,p1);

                g.Dispose();

                
    return bmp;
            }
    展开全文
  • NULL 博文链接:https://xurichusheng.iteye.com/blog/2024844
  • 代码能够读入的图片中进行直线、折线的绘制,并能够控制端点标记。这个代码弥补了matlab原图中绘制图形的缺陷。matlab plot函数绘制的线段,并没有改变读入图片的数据,直接保存图片的矩阵数据,不会保留绘制的...
  • 因为需要在图片上标记直线,所以从网上找了相应的参考资料。但大多都是c风格的,于是自己就按照此博主的c++风格的代码进行了简单的修改。 代码如下:

    因为需要在图片上标记直线,所以从网上找了相应的参考资料。但大多都是c风格的,于是自己就按照此博主的c++风格的代码进行了简单的修改。
    代码如下:

    #pragma warning(disable:4996)
    #include <opencv2/opencv.hpp>
    #include <opencv2\highgui\highgui.hpp>
    #include <opencv2\imgproc\imgproc.hpp>
    #include <iostream>
    #include <string.h>
    
    using namespace std;
    using namespace cv;
    Mat src;
    Mat dst;
    void on_mouse(int event, int x, int y, int flags, void* ustc)
    {
     static CvPoint pre_pt = { -1, -1 };
     static CvPoint cur_pt = { -1, -1 };
     char temp[16];
     if (event == CV_EVENT_LBUTTONDOWN)
     {
      dst.copyTo(src);
      sprintf(temp, "(%d,%d)", x, y);
      pre_pt = Point(x, y);
      putText(src, temp, pre_pt, FONT_HERSHEY_PLAIN,1,Scalar(0,0,255),1,8,0);
      circle(src, pre_pt, 3, cvScalar(255, 0, 0, 0), CV_FILLED, CV_AA, 0);
      imshow("src", src);
      src.copyTo(dst);
     }
     else if (event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON))
     {
      sprintf(temp, "(%d,%d)", x, y);
      dst.copyTo(src);
      cur_pt = Point(x, y);
      putText(src, temp, cur_pt, FONT_HERSHEY_PLAIN, 1, Scalar(0, 0, 255), 1, 8, 0);
      line(src, pre_pt, cur_pt, cvScalar(0, 255, 0, 0), 1, CV_AA, 0);
      imshow("src", src);
     }
     else if (event == CV_EVENT_LBUTTONUP)
     {
      sprintf(temp, "(%d,%d)", x, y);
      dst.copyTo(src);
      cur_pt = Point(x, y);
      putText(src, temp, cur_pt, FONT_HERSHEY_PLAIN, 1, Scalar(0, 0, 255), 1, 8, 0);
      circle(src, cur_pt, 3, cvScalar(255, 0, 0, 0), CV_FILLED, CV_AA, 0);
      line(src, pre_pt, cur_pt, cvScalar(0, 255, 0, 0), 1, CV_AA, 0);
      imshow("src", src);
      src.copyTo(dst);
     }
    }
    int main()
    {
     namedWindow("src", CV_WINDOW_AUTOSIZE);
     src = imread("1.jpg", 1);
     if (src.empty())
     {
      cout << "not find the image" << endl;
     }
     src.copyTo(dst);
     setMouseCallback("src", on_mouse, 0);
     imshow("src", src);
     waitKey(0);
     return 0;
    }

    注:#pragma warning(disable:4996)是为了规避4996的错误。

    展开全文
  • OpenCV图像中添加文字,画点,画直线 ,OpenCV图像中添加文字,绘制点,绘制直线 ,

    OpenCV在图像中添加文字,画点,画直线

    尊重原创,转载请注明出处】 http://blog.csdn.net/guyuealian/article/details/77870983
    
    
    #include "stdafx.h"
    #include <iostream>
    #include <string.h>
    #include<opencv2\opencv.hpp>
    using namespace cv;
    using namespace std;
    int main()
    {
    
    	Mat src = imread("images/2.jpg");//图片必须添加到工程目录下
    
    	// 将原图像转换为灰度图像    
    	//cvtColor(src, src, CV_BGR2GRAY)
    
    	//在原图画一个圆圈点
    	cv::Point point;//特征点,用以画在图像中  
    	point.x = 20;//特征点在图像中横坐标  
    	point.y = 50;//特征点在图像中纵坐标  
    	cv::circle(src, point, 4, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径 
    
    	//在原图画一条直线
    	cv::Point start = cv::Point(10, 100); //直线起点
    	cv::Point end = cv::Point(50, 200);   //直线终点
    	cv::line(src, start, end, cv::Scalar(0, 0, 255));
    
    	//在原图某个位置添加文字标记
    	//char str[4];
    	//int num = 100;
    	//_itoa_s(num, str, 10);//数字需要转为字符串来显示
    	string str = "Love100";
    	putText(src, str, end, cv::FONT_HERSHEY_DUPLEX, 0.5, cv::Scalar(0, 255,0 ), 2);
    	imshow("src", src);
    	waitKey(0);
    }
    运行结果:


    展开全文
  • %通过直线的起点和终点直线  plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','red'); %标出起点和终点  len=norm(lines(k).point1-lines(k).point2);  if(len>max_len) %算出最大的直线  max_len...
    clc;
    
    clear all;
    I=imread('test.jpg');
    figure;
    imshow(I);
    I=rgb2gray(I);
    rot1=imrotate(I,33,'crop');  %旋转图像
    bw=edge(rot1,'canny');   %使用边缘检测形成二值图像
    [H,T,R]=hough(bw);   %生成点的叠加矩阵和坐标T,R
    figure;
    imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');  %显示统计点的图形
    title('变换结果');
    xlabel('\theta'),ylabel('\rho');
    axis on,axis normal;hold on; %使坐标易于观察
    p=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));  %提取5个极值点,p中为极坐标的位置
    x=T(p(:,2));y=R(p(:,1));
    plot(x,y,'s','color','blue');
    lines=houghlines(bw,T,R,p,'FillGap',5,'MinLength',7);  %生成这五个点在图像中的直线矩阵
    figure;
    imshow(rot1);,hold on;
    max_len=0;
    for k=1:length(lines)  %计算线的数量
        xy=[lines(k).point1;lines(k).point2];  %
        plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); %通过直线的起点和终点画出直线
        plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','red');  %标出起点和终点
        len=norm(lines(k).point1-lines(k).point2);
        if(len>max_len)  %算出最大的直线
            max_len=len;
            xy_long=xy;
        end
    end

    plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','Cyan');  %标记出最大的直线






    展开全文
  • JavaScript实现图片上标记多点区域

    千次阅读 2015-06-05 13:40:48
    测试图片标记 #container{  position:relative; width:400px; height:300px; border:1px solid #CCC; overflow:hidden; } #map{  position:absolute; } .mark{  position:absolute; width:2px; height:
  • 用霍夫变换找出图像中的直线和圆(用彩色直线和圆标记在原图)。要求有代码,有注释,有过程、有结果 解: # -*- coding: UTF-8 -*-import cv2import numpy as np# 1.加载图片,转为二值图img = cv2.imread('...
  • OpenCV:鼠标画直线并显示坐标

    千次阅读 2017-03-15 17:11:28
    由于鼠标操作时,左键按下要有一个标记,也就一点,而我们通常的做法就是一个半径小点的圆做点。 函数实例 circle(src, cur_pt, 3, Scalar(255,0, 0), CV_FILLED, CV_AA, 0); 实例解析 src :源图像...
  • 经常imshow一幅图片之后,会上面plot一些标记点,但是imwrite的时候发现点并没有随之被保存下来。 尝试一些方法如下: 一、figure imshow(image0_rgb) hold on plot(loc0(:,2),loc0(:,1),'r+') gfframe=getframe...
  • android图片涂鸦(标记)

    千次阅读 2013-09-22 17:15:22
    主界面:一个图片,一个textView,点击图片后放大,出现两个按钮,点击标记按钮就可以对图片进行涂鸦,返回后图片回复正常大小,涂鸦的痕迹还留上面。大概就这么多功能。 下面开始分析需求: 由于主要功能是...
  • html画布图片不显示by Nash Vail 由Nash Vail Ok, so here’s a question: “Why do we need an article for this, Nash?” 好的,这是一个问题:“为什么我们需要为此写一篇文章,纳什?” Well, grab a seat. 好...
  • 参考代码 #include "stdafx.h" #include <iostream> #include <string.h> #include<opencv2\opencv.hpp>... //读取图片,“”是图像的位置 // 将原图像转换为灰度图像 //cvtColor(s
  • 利用VML标记语言画图、动画制作 进行信息技术与学科整合过程中,信息的加工处理过程中经常需要绘图,有时也需要一些动画。相当一部分绘图工作可使用Microsoft画图(可用于绘制各种较为复杂的电路图等),用...
  • 用VML标记语言画图、动画制作

    千次阅读 2012-10-30 16:45:28
    利用VML标记语言画图、动画制作 进行信息技术与学科整合过程中,信息的加工处理过程中经常需要绘图,有时也需要一些动画。相当一部分绘图工作可使用Microsoft画图(可用于绘制各种较为复杂的电路图等),用...
  • 包含:图片在canvas中移动、canvas上面进行标注、放大等 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <meta ...
  • 十七、画布绘图 原文:Drawing on Canvas 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 绘图就是欺骗。 M.C. Escher,由 Bruno ...
  • 开始我原图上标记并且捕获坐标直接修改并刷新,会有flicker现象出现,影响使用。于是将画图和持久化入图片文件分离。用屏幕线的MoveTo(CPoint),lineTo(CPoint)方式跟踪鼠标显示连续轨迹,不会flicker。但是分离...
  • 前段时间接到任务,主要实现网页端查看病理图片图片很大),并能够在图片上进行标注和刻度显示,对于其他各种辅助功能,参考成熟的网站。网站地址:http://image.kfbio.cn/HTML5/SeadragonViewer.aspx?SlideID=346...
  • table斜线、直线、圆、矩形、圆角矩形、圆弧、多边形、曲线等 xmlns:v> 无标题文档 v\:*{behavior:url(#default#VML);}  body,td,th { font-size: 10pt; } --> 模拟投资试算比较分析 ...
  • 之前那篇文章记录了我学习图片上批注的过程, http://blog.csdn.net/baidu_33546245/article/details/55684699不过上述的那个项目只是作为学习原理的代码,离真实的项目需求还是有很大差距的, 本来是想等功能稳定后...
  • !图片说明](https://img-ask.csdn.net/upload/201704/18/1492520117_55239.jpg) _原来是imagebox控件做的操作,现在改为wpf的Image控件,要怎么才能实现把坐标以曲线的形式图片上呢?
  • 检测图片的基础进行加工的 详情可看opencv图片倾斜度检(一)对图片进行检测 打开摄像头进行实时检测矩形轮廓,实时出坐标轴坐标点和倾斜度,并且具有保存图片和利用plot单纯出矩形的功能 直接全部代码 ...
  • } } 重要的类自定义View组件要重写View组件的onDraw(Canvase)方法,接下来是该 Canvas绘制大量的几何图形,点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形,等各种形状! DrawView.java public ...
  • matlab中图像划线 圈的方法

    万次阅读 2016-08-03 12:53:54
    %最后的‘ro’,r是代表红色,o是代表圈。圈的话可以提供多个点的坐标,我这里用的就是向量的形式。   plot(imp(1:2,1),imp(1:2,2)); %划线 提供两个xy坐标,然后plot默认就会划线  plot(imp(3:5,1),imp(3...
  • WPF 有趣的动画效果

    千次阅读 2014-11-20 12:20:01
    WPF 有趣的动画效果  这一次我要呈一个简单的文章,关于给你的WPF apps添加漂亮的光线动画,但是我对动画这东西可能有点入迷了。  实际,我对动画如此的入迷,以至于我... 然而,我们开始之前,我们需要考虑一

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,204
精华内容 3,281
关键字:

在图片上画直线标记