利用matlab提取并分割RGB图像中的某一个已知像素值的图像

已知一副RGB图像中的的像素值,利用matlab将其分割出来并以二进制图像形式显示:

%extract.m
clear all;
I=imread('new_original.png');
figure,imshow(I),title('Original Image');
bw=im2bw(I,0.3);
%figure,imshow(bw),title('Gray Image');
rgb=[252,2,4];
img=extract_rgb(I,rgb);
figure,imshow(im2bw(img)),title('Segmentation');
function out_img = extract_rgb(in_img,color_rgb )
%UNTITLED2 Summary of this function goes here
% in_img  输入图像 color_rgb 需要分割的rgb像素值
%   提取RGB彩色图像中的某一个颜色到一个二值图像中为黑色
[rol, row,mut]=size(in_img);
out_img=zeros([rol,row]);
for x=1:(rol-1)
    for y=1:(row-1)
    R=in_img(x,y,1);
    G=in_img(x,y,2);
    B=in_img(x,y,3);
    if((R==color_rgb(1))&(G==color_rgb(2))&(B==color_rgb(3)));
    in_img(x,y,:)
    out_img(x,y)=255;
    end
    end
end
return;
end

Original Image:

Segmentation Result:

利用matlab提取并分割RGB图像中的某一个已知像素值的图像

时间: 2024-10-12 20:32:02

利用matlab提取并分割RGB图像中的某一个已知像素值的图像的相关文章

【MATLAB】对离散采样信号添加高斯白噪声(已知Eb/N0)

(1)首先计算已知信号序列(采样之后得到的信号)的平均功率. 该序列在第n个点处的功率为: 如果已知的信号序列中的总共的点数为N个,则该序列的平均功率为: 在MATLAB中求平均功率的方法是: Pav=sum(x.^2)/length(x); (2)第二步是求单个符号的能量.能量的定义是功率乘以时间.对于单个符号来说,因为已经被采样了,每个符号可能对应多个采样点.因此,此处需要已知符号速率. 每个符号的能量为: 在MATLAB中求单位符号能量的方法是: Eb=sum(x.^2)/(length(

mysql获取一个表中的下一个自增(id)值的方法

MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get the next auto_increment value from a table run this query: SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = $tblName. Don’t for

matlab中怎样由上已知的三角矩阵或下三角矩阵构建对称矩阵??

方法:先将对角元素全部置为0,然后将上三角矩阵或下三角矩阵进行转置,最后进行两个矩阵相加,再填充对角元素: 1 >> a=[0,1,2;0,0,3;0,0,0]; 2 >> a 3 4 a = 5 6 0 1 2 7 0 0 3 8 0 0 0 9 >> a=a+a'; 10 >> a 11 12 a = 13 14 0 1 2 15 1 0 3 16 2 3 0

WCF中数据契约之已知类型的几种公开方式

WCF中传输的数据不想传统的面向对象编程,它只传递了一些对象的属性,但是自身并不知道自己属于什么对象,所以,他没有子类和父类的概念,因而也就没有Is-a的关系,所以在WCF中,如果想维持这种继承关系,就需要做一些特殊的处理了. 假设有如下定义, namespace KnownTypeExampleInterface{    [DataContract]    public class Employee    {        [DataMember]        public string N

图像细化函数(背景为黑色像素值为0,前景为白色像素值255,必须只含有0和255的像素值,即二值化后的图像)

procedure thinimage(srcimage:pIplImage);var count:Integer; //表示迭代次数 Zhangmude:array [1..9] of Integer; deletelist1,deletelist2:Tlist<Tcvpoint>; //存放着要删除的点 idx,i,j:Integer; whitepointtotal,ap:Integer; tempoint:TCvPoint;begin deletelist1:=Tlist<Tcv

openvc中读取图像访问图像中像元的的方法

一.读取图像 1.利用Mat数据结构读取和显示图片 #include"cv.h" #include "highgui.h" #include<iostream> using namespace std; using namespace cv; int _tmain(int argc, _TCHAR* argv[]) { Mat img=imread("./ImageData/sf1.png");//图片的相对路径 namedWindo

python中如何判断一个变量的数据类型

mport types type(x) is types.IntType # 判断是否int 类型 type(x) is types.StringType #是否string类型 ......... -------------------------------------------------------- 超级恶心的模式,不用记住types.StringType import types type(x) == types(1) # 判断是否int 类型 type(x) == type('a

WinForm/Silverlight多线程编程中如何更新UI控件的值

单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e){        Thread t = new Thread(new ParameterizedThreadStart(SetTextBoxValue));    //当然也可以用匿名委托写成

[无需建树]已知前序或后序和中序遍历结果,输出前序或后序或层次遍历的方法汇总

最近刷PAT老是碰到这种憨批题目,这种题目在算法面试中也是常客了,主要分为4类 已知前序 中序,求后序 已知前序 中序,求层次 已知后序 中序,求前序 已知前序 中序,求层次 而这四种题目如果要做出来的话,通通不需要建树,因为建树也是按照一定的递归顺序来的,就算是层次遍历,也可以在递归途中保存一些信息来获得. 我们先给出一颗二叉树 可以得到以下信息 前序:4,1,3,2,6,5,7 中序:1,2,3,4,5,6,7 后序:2,3,1,5,7,6,4 层次:4,1,6,3,5,7,2 前序&中序-