设置matlab图像线框,matlab在图像中画长方形(框)

function [state,result]=draw_rect(data,pointAll,windSize,showOrNot)

% 函数调用:[state,result]=draw_rect(data,pointAll,windSize,showOrNot)

% 函数功能:在图像画个长方形框

% 函数输入:data为原始的大图,可为灰度图,可为彩色图

% pointAll 框的左上角在大图中的坐标(每行代表一个坐标),

% 注意:在图中的坐标系为第一列为y,第二列为x(很奇怪的)

% windSize 框的大小 windSize=[,] 分别表示长宽

% showOrNot 是否要显示,默认为显示出来

% 函数输出:state -- 表示程序结果状态

% result - 结果图像数据

% 函数历史: v0. @-- created by Aborn

if nargin <

showOrNot = ;

end

rgb = [ ]; % 边框颜色

lineSize = ; % 边框大小,取1,,

windSize(,)=windSize(,);

windSize(,) = windSize(,);

if windSize(,) > size(data,) ||...

windSize(,) > size(data,)

state = -; % 说明窗口太大,图像太小,没必要获取

disp('the window size is larger then image...');

return;

end

result = data;

if size(data,) ==

for k=:

for i=:size(pointAll,) %画边框顺序为:上右下左的原则

result(pointAll(i,),pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,)+windSize(i,),pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,),k) = rgb(,k);

if lineSize == || lineSize ==

result(pointAll(i,)+,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,)-,k) = rgb(,k);

result(pointAll(i,)+windSize(i,)-,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)-,k) = rgb(,k);

if lineSize ==

result(pointAll(i,)-,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+windSize(i,)+,k) = rgb(,k);

result(pointAll(i,)+windSize(i,)+,pointAll(i,):pointAll(i,)+windSize(i,),k) = rgb(,k);

result(pointAll(i,):pointAll(i,)+windSize(i,),pointAll(i,)+,k) = rgb(,k);

end

end

end

end

end

state = ;

if showOrNot ==

figure;

imshow(result);

end

在main函数中调用如下:

% main.m

clc;

clear;

close all;

data = imread('man_1.jpg');

pointAll = [,];

windSize = [,];

[state,results]=draw_rect(data,pointAll,windSize);

return;

原图像为:

结果图像为:

特别注意:图像中显示的坐标系和我们平时用的不一样!!!

from: http://blog.csdn.net/loveaborn/article/details/8545809

MATLAB&#183;提取图像中多个目标

基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

利用OpenCV检测图像中的长方形画布或纸张并提取图像内容

基于知乎上的一个答案.问题如下: 也就是在一张照片里,已知有个长方形的物体,但是经过了透视投影,已经不再是规则的长方形,那么如何提取这个图形里的内容呢?这是个很常见的场景,比如在博物馆里看到一幅很喜欢 ...

MATLAB GUI程序设计中使文本框接收多行输入的方法

对于文本框来说 Max属性于Min属性数值之差小于等于1时,仅接收单行输入 大于1时,接受多行输入 对于多行情况,set/get到的String应为cell 本系列文章允许转载,转载请保留全文! [说 ...

matlab 对图像操作的函数概览

转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

[图像]用Matlab在图像上画矩形框

原创文章,欢迎转载.转载请注明:转载自 祥的博客 原文链接:http://blog.csdn.net/humanking7/article/details/46819527 在毕业设计的时候写论文画图 ...

Matlab实现Hough变换检測图像中的直线

Hough变换的原理: 将图像从图像空间变换至參数空间.变换公式例如以下: 变换以后,图像空间与參数空间存在下面关系: 图像空间中的一点在參数空间是一条曲线,而图像空间共线的各点相应于參数空间交于一点 ...

【matlab】图像直方图

使用imhist函数(要先用rgb2gray转化为灰度图像) 利用matlab计算图像直方图函数为imhist() 具体用法: imhist( i );直接显示图像i的灰度直方图: imhist(i, ...

利用Adorner制作用于图像裁切的选择框

原文:利用Adorner制作用于图像裁切的选择框 前天,我写了一篇"使用Adorner显示WPF控件的边界点"的文章.这次,使用从Adorner继承来写一个用于图像裁切的选择框. ...

随机推荐

不起眼却有大作用的 .NET功能集(转发)

http://www.cnblogs.com/powertoolsteam/p/top15features.html 目录 1. ObsoleteAttribute2. 设置默认值属性: Defaul ...

SQL SERVER 导出到Oracle 问题与技巧

工具: 使用SQL SERVER自带的导入, 导出工具   技巧: 一. 使用Oracle Provider for OLE DB(强制推荐) 1. 速度快 2. 要安装Oracle驱动(Oracle ...

自己用反射写的一个request.getParameter工具类

适用范围:当我们在jsp页面需要接收很多值的时候,如果用request.getParameter(属性名)一个一个写的话那就太麻烦了,于是我想是 否能用反射写个工具类来简化这样的代码,经过1个小时的代 ...

Spring AOP 实现原理

什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入 ...

Poetize6: IncDec Sequence

3043: IncDec Sequence Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 233  Solved: 132[Submit][Statu ...

UVA-11214 IDA*

利用迭代加深搜索,枚举需要的皇后数量,进行搜索. 对于10 * 10 的棋盘,最多需要5个皇后就能攻击整个棋盘,当0~4个皇后都不能搜索成功,那么5就不用搜索,直接打印. AC代码: #include ...

SpringBoot(三)_controller的使用

针对controller 中 如何使用注解进行解析 @RestController 返回数据类型为 Json 字符串,特别适合我们给其他系统提供接口时使用. @RequestMapping (1) 不 ...

二进制安装mysql5.7

1.创建用户和组 groupadd mysql useradd -r -g mysql mysql 2.上传二进制包至/usr/local下解压并改名为mysql tar zxvf mysql-5.7 ...

Java进阶 -- 文章汇总

文章汇总 Java集合源码 -- Collection框架概述 Java集合源码 -- Map映射和Set集合 Java集合源码 -- List列表 String和StringBuffer 内部类 j ...

HTTP协议详解之基本认证篇

•什么是HTTP基本认证: 桌面应用程序也通过HTTP协议跟web服务器交互,桌面应用程序一般不会使用cookie,而是把‘用户名+:+密码’用base64编码之后的string放在request中的 ...

你可能感兴趣的:(设置matlab图像线框)