小编bee*_*dot的帖子

算上蜥蜴的鳞片

我的一位生物学家朋友问我是否可以帮他制作一个程序来计算蜥蜴的鳞片(这是正确的翻译?).

他给我发了一些图片,我在Matlab上尝试了一些东西.对于某些图像,它比其他图像更难,例如当存在较暗(黑色)区域时.至少用我的方法.我相信我可以在这里得到一些有用的帮助.我应该如何改进?我采取了正确的方法吗?

这些是一些图像.

PIC1

PIC2

通过使用MATLAB跟踪图像处理和计数,我得到了最好的结果.它基本上将图像转换为黑白图像然后将其阈值化.但我确实增加了一点侵蚀.

这是代码:

img0=imread('C:...\pic.png');

img1=rgb2gray(img0);

%The output image BW replaces all pixels in the input image with luminance greater than level with the value 1 (white) and replaces all other pixels with the value 0 (black). Specify level in the range [0,1]. 
img2=im2bw(img1,0.65);%(img1,graythresh(img1));

imshow(img2)
figure;

 %erode
 se = strel('line',6,0);     
 img2 = imerode(img2,se);
 se = strel('line',6,90);   
 img2 = imerode(img2,se);
 imshow(img2)
figure;

imshow(img1, 'InitialMag', 'fit')

% Make a truecolor all-green image. I …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab image-processing image-segmentation mathematical-morphology

10
推荐指数
1
解决办法
536
查看次数

OpenCV开槽检测

在此输入图像描述我有一张有许多凹槽的表面的照片.在大多数情况下,开槽的边缘形成平行线,因此Canny和Hough变换非常适合检测线条并进行一些表征.然而,在几个地方,开槽受损并且边缘不再平行.

我正在寻找一种简单的方法来检查某条边是否是一条直线,或者是否有直线的间隙或偏差.我在想线性插值中的R平方参数,但在这里我需要一个更依赖于位置的参数.你有什么其他的方法来表征边缘吗?

我附上了canny边缘检测后的切槽图片.这里,边缘是直线,开槽很好.不幸的是,我无法访问目前损坏的切槽图片.但是,在切槽损坏的图片中,线条会有较大的间隙(至少为图片尺寸的10%)或不平行.

c++ opencv image-processing line mathematical-morphology

8
推荐指数
1
解决办法
3899
查看次数

在Canny边缘算法中只需要一条边

当我使用canny edge算法时,它会产生与预期的粗色线相对的2条边,但我只想显示一条边以便使我的线和曲线检测算法更简单,任何关于我如何能够的想法让这种情况发生?

在此输入图像描述

这是代码:

bool CannyEdgeDetection(DataStructure& col)
{

Mat src, src_gray;
Mat dst, detected_edges, fin;
int WhiteCount = 0, BCount = 0;

char  szFil1[32] = "ocv.bmp";
char  szFil2[32] = "dst.bmp";
src = imread(szFil1);
dst = imread(szFil1);
blur( src_gray, detected_edges, Size(3,3) );
Canny( src, dst, 100, 200, 3 );
imwrite(szFil2, dst );

IplImage* img = cvLoadImage(szFil2);
int height    = img->height;
int width     = img->width;
int step      = img->widthStep;
int channels  = img->nChannels;
uchar * datau      = (uchar *)img->imageData;

for(int i=0;i<height;i++){
for(int j=0;j<width;j++){ …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing edge-detection mathematical-morphology

7
推荐指数
1
解决办法
1810
查看次数

分割灰度图像

我无法实现灰度图像的正确分割:

要分割的图像

基本的事实,即我希望细分看起来像是这样的:

事实真相

我对圈内的三个组成部分最感兴趣.因此,正如您所看到的,我想将顶部图像分成三个部分:两个半圆,以及它们之间的矩形.

我尝试了各种扩张,侵蚀和重建的组合,以及各种聚类算法,包括k-means,isodata和高斯混合 - 所有这些都取得了不同程度的成功.

任何建议,将不胜感激.

编辑:这是我能够获得的最佳结果.这是使用活动轮廓来分割圆形ROI,然后应用等数据聚类获得的:

集群

这有两个问题:

  • 右下方群集周围的白色光环,属于左上角群集
  • 右上角和左下角群集周围的灰色光环,属于中心群集.

matlab image-processing morphological-analysis image-segmentation mathematical-morphology

6
推荐指数
1
解决办法
1万
查看次数

多个编辑器窗口,带有多个选项

我经常在MATLAB中处理多个项目,并且每次访问的项目都有一组文件.打开所有项目的所有文件会导致工作区中出现大量混乱.人们可以通过对接来完成一组文件,这是众所周知的.有没有办法选项卡项目,或者有多个MATLAB编辑器(每个项目)打开,每个项目都有多个选项卡(包含项目文件).这个问题也可以在这里找到.同样,还有其他代码编辑器可用于执行相同的操作吗?

Project1
    file 1.m
    file 2.m
    file 3.m
    file 4.m

Project2
    file 1.m
    file 2.m
    file 3.m
    file 4.m
Run Code Online (Sandbox Code Playgroud)

可以在同一个窗口中,也可以在不同的窗口中.

matlab tabs editor

6
推荐指数
1
解决办法
2838
查看次数